seata RegistryService heartbeat

zxlwwiss  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(35)

Why you need it?

seata 是在服务启动的时候做服务注册, 极端情况下整个注册中心宕机后重启,seata RegistryService没有心跳机制(除了 nacos/sofa) 就会导致必需重启 seata 集群才能正常.
我觉得可以在 RegistryService 抽象一个带心跳的RegistryService,用于支持 seata 和注册中心的心跳(nacos/sofa client register自带了心跳)

How it could be?

提升 seata 整体的稳定性

PS: 如果这个需求能够成立,可以分配给我😀

pengsaosao

pengsaosao1#

目前是松耦合的每个实现类里都有CLUSTER_ADDRESS_MAP来缓存服务列表,只不过此时如果服务也宕机了,那么就会受到影响,个人认为此功能应该写在file模式的注册中心中,其余zk,etcd,nacos等都是注册中心,本身就有注册中心的功能,如果我们自己去实现这个心跳,还要注册中心干嘛?理论上就要各司其职,保证注册中心是集群化部署高可用。seata不应该去充当这个角色,所以file那块比较适合,因为file其实就是seata自己实现的简版注册中心,提前写好server地址,但是无感知能力,所以server连接串里某些tc宕机了,是无法感知和恢复的

stszievb

stszievb2#

我好像理解错你的意思了,你说的是跟注册中心的心跳,我记得zk也是支持的,可以增加listener,不支持的我觉得你说的是对的,要重新建立跟注册中心的链接

xnifntxz

xnifntxz3#

我好像理解错你的意思了,你说的是跟注册中心的心跳,我记得zk也是支持的,可以增加listener,不支持的我觉得你说的是对的,要重新建立跟注册中心的链接

是的 我的意思就是这个。因为我们目前使用 consul 作为注册中心。某些极端情况下整个 consul 集群挂了再重启就没有 seata 节点信息了

eqoofvh9

eqoofvh94#

我好像理解错你的意思了,你说的是跟注册中心的心跳,我记得zk也是支持的,可以增加listener,不支持的我觉得你说的是对的,要重新建立跟注册中心的链接

是的 我的意思就是这个。因为我们目前使用 consul 作为注册中心。某些极端情况下整个 consul 集群挂了再重启就没有 seata 节点信息了

个人认为可以的,话说得检查清楚有哪些是不会自动重连的

相关问题