apache / apache/incubator-seata
微服务停止之后,seata服务没有监听到断开连接。造成微服务再次启动的时候连接失败。
- Dominant language
- Java
- Stars
- 26k
- Forks
- 8.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 4
Description
###Ⅰ. Environment:
- seata-version:1.3.0
- springboot:2.2.4.RELEASE
- dubbo:2.7.1
- nacos:1.3.1
### Ⅱ. Issue Description
```
您好!
首先在我的seata和微服务第一次启动的时候可以成功注册上。然后我尝试修改微服务业务逻辑,停止掉了微服务,偶尔seata的能够监听到连接断开。
当我再次启动微服务的时候就无法连接,我通过查看seata的日志看到之前的连接并没有断开。是我尝试按 Ctrl+c 才有断开的连接提示。之后我再次启动微服务发现是可以成功连接上的。
```
```
2020-09-10 22:08:00.433 INFO 10224 --- [ main] c.h.s.a.p.ActivityProviderApplication : Started ActivityProviderApplication in 6.827 seconds (JVM running for 8.067)
2020-09-10 22:08:56.139 INFO 10224 --- [eoutChecker_1_1] i.s.c.r.netty.NettyClientChannelManager : will connect to 192.168.1.103:8091
2020-09-10 22:08:56.141 INFO 10224 --- [eoutChecker_1_1] i.s.core.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:TMROLE,address:192.168.1.103:8091,msg:< RegisterTMRequest{applicationId='applicationName', transactionServiceGroup='my_test_tx_group'} >
2020-09-10 22:08:56.197 INFO 10224 --- [eoutChecker_1_1] i.s.c.rpc.netty.TmNettyRemotingClient : register TM success. client version:1.3.0, server version:1.3.0,channel:[id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]
2020-09-10 22:08:56.204 INFO 10224 --- [eoutChecker_1_1] i.s.core.rpc.netty.NettyPoolableFactory : register success, cost 48 ms, version:1.3.0,role:TMROLE,channel:[id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]
2020-09-10 22:08:56.330 INFO 10224 --- [eoutChecker_2_1] i.s.c.r.netty.NettyClientChannelManager : will connect to 192.168.1.103:8091
2020-09-10 22:08:56.331 INFO 10224 --- [eoutChecker_2_1] i.s.core.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:RMROLE,address:192.168.1.103:8091,msg:< RegisterRMRequest{resourceIds='null', applicationId='applicationName', transactionServiceGroup='my_test_tx_group'} >
2020-09-10 22:08:56.354 INFO 10224 --- [eoutChecker_2_1] i.s.c.rpc.netty.RmNettyRemotingClient : register RM success. client version:1.3.0, server version:1.3.0,channel:[id: 0x725fe817, L:/192.168.1.103:4358 - R:/192.168.1.103:8091]
2020-09-10 22:08:56.354 INFO 10224 --- [eoutChecker_2_1] i.s.core.rpc.netty.NettyPoolableFactory : register success, cost 9 ms, version:1.3.0,role:RMROLE,channel:[id: 0x725fe817, L:/192.168.1.103:4358 - R:/192.168.1.103:8091]
2020-09-10 22:09:11.198 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : channel [id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091] read idle.
2020-09-10 22:09:11.198 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : will destroy channel:[id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]
2020-09-10 22:09:11.198 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.199 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.netty.NettyClientChannelManager : return to pool, rm channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : channel valid false,channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : will destroy channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : channel inactive: [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : channel valid false,channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : will destroy channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
```
Contributor guide
Research direction
Reproduce the stop-and-restart sequence using Seata 1.3.0 with Spring Boot, Dubbo, and Nacos, then inspect the connection lifecycle around NettyClientChannelManager, NettyPoolableFactory, and AbstractNettyRemotingClient. Compare behavior after a normal stop with Ctrl+C. Done means Seata detects the disconnected microservice and allows it to reconnect successfully without manual intervention.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring-boot
- Domain
- backend, distributed-systems, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100