Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize: use expire key instead hash when using redis as registry center #4176

Merged
merged 7 commits into from
Jan 14, 2022

Conversation

Pinocchio2018
Copy link
Contributor

@Pinocchio2018 Pinocchio2018 commented Dec 7, 2021

  • I have registered the PR changes.

Ⅰ. Describe what this PR did

use expire key instead hash when using redis as registry cente.

hash version:

key field value
registry.redis.default 192.168.61.1:8091 24728@SHN2110917J3F3
  192.168.61.1:8092 22944@SHN2110917J3F3

expire String key version:

key value
registry.redis.${cluster}_ip:port 24728@SHN2110917J3F3
registry.redis.default_192.168.61.1:8092 22944@SHN2110917J3F3

the redis registry key live 5 seconds, the heart-beat thread pool will auto refresh key every 2 seconds

Ⅱ. Does this pull request fix one issue?

fixes #4100

Ⅲ. Why don't you add test cases (unit test/integration test)?

I may need a sample to write unit test.
I 've tested with seata-samples

Ⅳ. Describe how to verify it

test with seata-samples
check redis

Ⅴ. Special notes for reviews

@Pinocchio2018 Pinocchio2018 force-pushed the develop_issue_4100 branch 2 times, most recently from 7d17f16 to 161f7ca Compare December 7, 2021 14:19
@codecov-commenter
Copy link

codecov-commenter commented Dec 8, 2021

Codecov Report

Merging #4176 (707189e) into develop (4f8e4b1) will decrease coverage by 0.02%.
The diff coverage is 16.66%.

Impacted file tree graph

@@              Coverage Diff              @@
##             develop    #4176      +/-   ##
=============================================
- Coverage      48.55%   48.53%   -0.03%     
  Complexity      3791     3791              
=============================================
  Files            724      724              
  Lines          24236    24239       +3     
  Branches        2970     2971       +1     
=============================================
- Hits           11768    11764       -4     
- Misses         11229    11232       +3     
- Partials        1239     1243       +4     
Impacted Files Coverage Δ
...o/seata/rm/datasource/sql/struct/TableRecords.java 67.61% <15.38%> (-7.65%) ⬇️
...o/seata/server/storage/redis/lock/RedisLocker.java 37.56% <20.00%> (+0.69%) ⬆️
...n/src/main/java/io/seata/common/util/IdWorker.java 77.08% <0.00%> (-6.25%) ⬇️

@slievrly
Copy link
Member

slievrly commented Dec 8, 2021

The scheduled task renew triggers pub / sub every time, even if the serverlist is not changed

@Pinocchio2018
Copy link
Contributor Author

The scheduled task renew triggers pub / sub every time, even if the serverlist is not changed

@slievrly Do you mean that we can optimize the logic? we update the CLUSTER_ADDRESS_MAP until the serverlist does change?


And, you remind me that there is another problem after I use string key instead hash.
jedis.subscribe() won't work due to the key has changed
Do I need to change the code here?to subscribe different string key? or remove the subscribe?
image

@Pinocchio2018
Copy link
Contributor Author

image

I want to add another ScheduledExecutorService in client side.
one ScheduledExecutorService focus on pub/sub.
another ScheduledExecutorService focus on scan key.
image

Pinocchio2018 and others added 3 commits December 13, 2021 20:56
…/seata into develop

� Conflicts:
�	discovery/seata-discovery-redis/src/main/java/io/seata/discovery/registry/redis/RedisRegistryServiceImpl.java
@Pinocchio2018
Copy link
Contributor Author

I add some code in my local version of seata

public class RedisRegistryServiceImpl implements RegistryService<RedisListener> {

    List<InetSocketAddress> lookupByCluster(String clusterName) {
        // ......

        Set<InetSocketAddress> addrSet = CLUSTER_ADDRESS_MAP.getOrDefault(clusterName, Collections.emptySet());
        LOGGER.info("返回的addrSet是:[{}]", addrSet);
        return new ArrayList<>(addrSet);
    }

    private void updateClusterAddressMap(Jedis jedis, String redisRegistryKey) {
        // ......

        if (!newAddressSet.equals(CLUSTER_ADDRESS_MAP.get(clusterName))) {
            LOGGER.info("update map :[{}] --> [{}]", CLUSTER_ADDRESS_MAP.get(clusterName), newAddressSet);
            CLUSTER_ADDRESS_MAP.put(clusterName, newAddressSet);
        }
    }
}

this is what I see on client side
I think there is a problem here
Channel closed event was detected on client side, but the CLUSTER_ADDRESS_MAP still have two address

2021-12-17 10:40:29.357  INFO 20108 --- [sterAddrMap_1_1] i.s.d.r.redis.RedisRegistryServiceImpl   : update map :[[/192.168.61.1:8091]] --> [[/192.168.61.1:8091, /192.168.61.1:8092]]
# I start one tc (port 8092), few seconds later I shutdown it (port 8092)
2021-12-17 10:40:31.099  INFO 20108 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : channel inactive: [id: 0xc46a70ef, L:/192.168.61.1:62028 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_TMROLE_1_1] i.s.c.r.netty.NettyClientChannelManager  : return to pool, rm channel:[id: 0xc46a70ef, L:/192.168.61.1:62028 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_RMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : channel inactive: [id: 0x2b8284d7, L:/192.168.61.1:62077 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory  : channel valid false,channel:[id: 0xc46a70ef, L:/192.168.61.1:62028 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_RMROLE_1_1] i.s.c.r.netty.NettyClientChannelManager  : return to pool, rm channel:[id: 0x2b8284d7, L:/192.168.61.1:62077 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory  : will destroy channel:[id: 0xc46a70ef, L:/192.168.61.1:62028 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_RMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory  : channel valid false,channel:[id: 0x2b8284d7, L:/192.168.61.1:62077 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_RMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory  : will destroy channel:[id: 0x2b8284d7, L:/192.168.61.1:62077 ! R:/192.168.61.1:8092]
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0xc46a70ef, L:/192.168.61.1:62028 ! R:/192.168.61.1:8092]) will closed
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_RMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x2b8284d7, L:/192.168.61.1:62077 ! R:/192.168.61.1:8092]) will closed
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_RMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x2b8284d7, L:/192.168.61.1:62077 ! R:/192.168.61.1:8092]) will closed
2021-12-17 10:40:31.100  INFO 20108 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0xc46a70ef, L:/192.168.61.1:62028 ! R:/192.168.61.1:8092]) will closed
2021-12-17 10:40:31.234  INFO 20108 --- [eoutChecker_1_1] i.s.d.r.redis.RedisRegistryServiceImpl   : 返回的addrSet是:[[/192.168.61.1:8091, /192.168.61.1:8092]]
2021-12-17 10:40:31.234  INFO 20108 --- [eoutChecker_1_1] i.s.c.r.netty.NettyClientChannelManager  : will connect to 192.168.61.1:8092
2021-12-17 10:40:31.234  INFO 20108 --- [eoutChecker_1_1] i.s.core.rpc.netty.NettyPoolableFactory  : NettyPool create channel to transactionRole:TMROLE,address:192.168.61.1:8092,msg:< RegisterTMRequest{applicationId='order-seata-example', transactionServiceGroup='order-service-seata-service-group'} >
2021-12-17 10:40:32.206  INFO 20108 --- [eoutChecker_2_1] i.s.d.r.redis.RedisRegistryServiceImpl   : 返回的addrSet是:[[/192.168.61.1:8091, /192.168.61.1:8092]]
2021-12-17 10:40:32.206  INFO 20108 --- [eoutChecker_2_1] i.s.c.r.netty.NettyClientChannelManager  : will connect to 192.168.61.1:8092
2021-12-17 10:40:32.206  INFO 20108 --- [eoutChecker_2_1] i.s.c.rpc.netty.RmNettyRemotingClient    : RM will register :jdbc:mysql://127.0.0.1:3306/seata_test
2021-12-17 10:40:32.206  INFO 20108 --- [eoutChecker_2_1] i.s.core.rpc.netty.NettyPoolableFactory  : NettyPool create channel to transactionRole:RMROLE,address:192.168.61.1:8092,msg:< RegisterRMRequest{resourceIds='jdbc:mysql://127.0.0.1:3306/seata_test', applicationId='order-seata-example', transactionServiceGroup='order-service-seata-service-group'} >
2021-12-17 10:40:33.242  INFO 20108 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x2616e2d2]) will closed
2021-12-17 10:40:33.246 ERROR 20108 --- [eoutChecker_1_1] i.s.c.r.netty.NettyClientChannelManager  : 0304 register RM failed.

io.seata.common.exception.FrameworkException: can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientBootstrap.getNewChannel(NettyClientBootstrap.java:182) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyPoolableFactory.makeObject(NettyPoolableFactory.java:58) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyPoolableFactory.makeObject(NettyPoolableFactory.java:34) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220) ~[commons-pool-1.6.jar:1.6]
	at io.seata.core.rpc.netty.NettyClientChannelManager.doConnect(NettyClientChannelManager.java:239) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:110) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:193) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.AbstractNettyRemotingClient$1.run(AbstractNettyRemotingClient.java:114) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_151]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_151]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-all-4.1.32.Final.jar:4.1.32.Final]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]
Caused by: io.seata.common.exception.FrameworkException: connect failed, can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientBootstrap.getNewChannel(NettyClientBootstrap.java:177) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	... 15 common frames omitted
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.61.1:8092
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_151]
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_151]
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:327) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:591) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:508) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	... 2 common frames omitted
Caused by: java.net.ConnectException: Connection refused: no further information
	... 11 common frames omitted

2021-12-17 10:40:33.246 ERROR 20108 --- [eoutChecker_1_1] i.s.c.r.netty.NettyClientChannelManager  : 0101 can not connect to 192.168.61.1:8092 cause:can not register RM,err:can not connect to services-server.

io.seata.common.exception.FrameworkException: can not register RM,err:can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientChannelManager.doConnect(NettyClientChannelManager.java:243) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:110) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:193) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.AbstractNettyRemotingClient$1.run(AbstractNettyRemotingClient.java:114) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_151]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_151]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-all-4.1.32.Final.jar:4.1.32.Final]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]

2021-12-17 10:40:33.357  INFO 20108 --- [sterAddrMap_1_1] i.s.d.r.redis.RedisRegistryServiceImpl   : update map :[[/192.168.61.1:8091, /192.168.61.1:8092]] --> [[/192.168.61.1:8091]]
2021-12-17 10:40:34.212  INFO 20108 --- [ctor_RMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient    : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x076335be]) will closed
2021-12-17 10:40:34.213 ERROR 20108 --- [eoutChecker_2_1] i.s.c.r.netty.NettyClientChannelManager  : 0304 register RM failed.

io.seata.common.exception.FrameworkException: can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientBootstrap.getNewChannel(NettyClientBootstrap.java:182) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyPoolableFactory.makeObject(NettyPoolableFactory.java:58) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyPoolableFactory.makeObject(NettyPoolableFactory.java:34) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1220) ~[commons-pool-1.6.jar:1.6]
	at io.seata.core.rpc.netty.NettyClientChannelManager.doConnect(NettyClientChannelManager.java:239) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:110) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:193) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.AbstractNettyRemotingClient$1.run(AbstractNettyRemotingClient.java:114) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_151]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_151]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-all-4.1.32.Final.jar:4.1.32.Final]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]
Caused by: io.seata.common.exception.FrameworkException: connect failed, can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientBootstrap.getNewChannel(NettyClientBootstrap.java:177) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	... 15 common frames omitted
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /192.168.61.1:8092
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_151]
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_151]
	at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:327) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:591) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:508) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909) ~[netty-all-4.1.32.Final.jar:4.1.32.Final]
	... 2 common frames omitted
Caused by: java.net.ConnectException: Connection refused: no further information
	... 11 common frames omitted

2021-12-17 10:40:34.213 ERROR 20108 --- [eoutChecker_2_1] i.s.c.r.netty.NettyClientChannelManager  : 0101 can not connect to 192.168.61.1:8092 cause:can not register RM,err:can not connect to services-server.

io.seata.common.exception.FrameworkException: can not register RM,err:can not connect to services-server.
	at io.seata.core.rpc.netty.NettyClientChannelManager.doConnect(NettyClientChannelManager.java:243) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.acquireChannel(NettyClientChannelManager.java:110) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.NettyClientChannelManager.reconnect(NettyClientChannelManager.java:193) ~[seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at io.seata.core.rpc.netty.AbstractNettyRemotingClient$1.run(AbstractNettyRemotingClient.java:114) [seata-all-1.5.0-SNAPSHOT.jar:1.5.0-SNAPSHOT]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_151]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_151]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_151]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_151]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-all-4.1.32.Final.jar:4.1.32.Final]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]

2021-12-17 10:40:41.233  INFO 20108 --- [eoutChecker_1_1] i.s.d.r.redis.RedisRegistryServiceImpl   : 返回的addrSet是:[[/192.168.61.1:8091]]

@funky-eyes funky-eyes added this to the 1.5.0 milestone Dec 18, 2021
@funky-eyes funky-eyes added the module/discovery discovery module label Dec 18, 2021
Copy link
Contributor

@funky-eyes funky-eyes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@funky-eyes funky-eyes merged commit d6efb49 into apache:develop Jan 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Redis作为注册中心,seata server非正常下线,TM、Redis缓存不更新问题
4 participants