
1、@张思雨 提问:
我配置中心里加了
transport.threadFactory.clientSelectorThreadSize...设置了个 100,这个值是不是一般设置成 cpu 核数*2 就够了啊?
我之前遇到了 tc 调客户端的 commit 超时。我就把这种值都调大了试试效果 ,
transport.threadFactory.clientSelectorThreadSize 100
transport.threadFactory.workerThreadSize 3000
A:线程数这个东西这不该开放出去,很危险,对 netty 了解一点应该也知道 NioEventLoopGroup 的最多应该就核心数的两倍。
Seata:https://github.com/seata/seat
2、@林南行 提问:
大家好,请教一个问题:我现在用的 seata-server 的 1.3.0 的版本,客户端用的是 1.4.1 版本。当同时启动 10+个微服务连接 seata-server 的时候,只有 10 个能注册成功,剩余的必须重启后才能重新注册成功,这个是什么问题呢?
A:试一下把 logSerialization 改成 kyro。
Seata:https://github.com/seata/seata
3、@林南行 提问:
seata-server-1.3.0 和 seata-server-1.4.2 在配置上有什么区别吗?
两边的 registry.conf 配置是一样的,但是 1.3.0 能正常启动,1.4.2 就报错,global_table 找不到。
A:没区别,说明配置有问题,看看 global_table 写了没,写了的话,写的是什么,配置中心是什么,检查清除。
Seata:https://github.com/seata/seata
4、@潘顾昌 提问:
请问什么情况这个状态会是 Finished?现在导致这部分数据没有提交,但是也没有报错,正常的数据提交后看到的都是这个。


现在有些情况会返回 Finished,导致没有正常提交。
A:事务结束了不就是 Finished,自己服务降级了吧,导致没回滚,部分插入部分没插入了。
Seata:https://github.com/seata/seata
5、@潘顾昌 提问:
Finished 已经插入的数据会回滚丢失吗?我们后台实时监控到,一开始是插入到数据库的,确实是有的,但是结束以后数据就丢失了
A:seata 没有执行二阶段回滚,不会消失数据,数据丢失要么是本地事务发生异常,你们捕获异常了,用 spring api 来回滚了本地事务,导致异常没抛出去,事务回滚了,要么发生异常,被你们的全局异常捕获器捕获了,导致决议了提交,实际上数据已经被本地事务回滚,seata 在二阶段不是 rollback 相关状态的时候不会干预业务数据。
Seata:https://github.com/seata/seata
6、@陈建斌 提问:
现在本地 load 自己的 snapshot,很可能因为编码疏忽,测试不到位,导致数据不一致的情况出现?
A:raft 是基于日志复制的,状态机是用户自己的行为,状态机的输入全部来自 raft log,所以基于同样的输入产出同样的输出这是用户状态机需要保证的事情,snapshot 又来自状态机数据,所以你这个讨论就不成立啦,你这个故意测试也没有意义。
SOFAStack: https://github.com/sofastack/sofa-jraft
本周发布详情如下:
1. 支持应用级服务发现
2. 基于 slot 分配的数据分片存储
详细参考 : https://github.com/sofastack/sofa-registry/tree/v6-alpha1

本文分享自微信公众号 - 金融级分布式架构(Antfin_SOFA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。