1、@明惑 提问:
请教一下:为什么
KVStoreStateMachine#onSnapshotLoad 是 leader 的时候,不去做;leader 节点如果之前进行过 snapshot 之后,raft log 应该会被删除吧;后续集群重启的时候,leader 不用 snapshot 怎么保证数据还原呢?
A:想一下,如果它还需要 load snapshot 的话,它是怎么变成 leader 的,如果已经是 leader 了,肯定不需要 load snapshot;理论上不会走到这个分支,只是防御性的代码,如果走到这个分支,就直接报错停止状态机了。
SOFAJRaft:https://github.com/sofastack/sofa-jraft
2、@明惑 提问:
现在创建 Grpc Server 的时候,只提供了 port 配置,考虑放开一些参数可以用户配置吗?比如 grpc 的 messageSize。
A:helper.config看一下。
SOFAJRaft:https://github.com/sofastack/sofa-jraft
3、@刘明明 提问:
请教一下:我现在想用 Go 去写一个组件当一个简易的 Sidecar 去对其他服务做健康检查。这个 Go 组件要整合 nacos 注册发现和元数据管理,后期也会整合 Istio,这个组件干的事情应该和 MOSN 类似,Go 这边 0 基础,我是写 JAVA 的,就比如这个用 JAVA 实现只需要 springboot 就好了,Go 这边我调研了下准备用 go-Micro,请问各位这个方向是否正确?
A:可以参考这个实现: https://github.com/mosn/mosn/issues/1087 这个是直接对接 zk 做的。
MOSN:https://github.com/mosn/mosn
4、@彭勃 提问:
请教一下,关于 TCC 模式下,会有发生空回滚,资源悬挂,幂等性等问题,需要通过事务控制表去管理。我此前看到同学介绍它们会将事务控制表变成 TCC 模式的一部分(2020 年初),让业务开发者不用自己关注这些问题,请问现在 TCC 模式已经做了吗?
A:目前只能支持单数据源下的防悬挂,直接利用开启 spring 本地事务,然后做一些前置操作来预防。
Seata:https://github.com/seata/seata
5、@王译锌 提问:
请教一下:既然回滚依赖于异常上报给 TM,那为什么分支事务的状态还要上报给 TC 呢?一直没想通这个问题。
A:1.方便以后出控制台可以实时查看分支事务状态; 2.比如某些分支吞了异常后,有 report 的情况下方便判断。比如:a 调 b 再调 c,b 其实已经出现异常并且本地事务下已经回滚了,此时 c 响应给 a,a 做后续处理的时候异常,此时 TC 发现 b 已经由本地事务回滚了,就无需驱动了,这样就减少了下发的数量。
Seata:https://github.com/seata/seata
本文分享自微信公众号 - 金融级分布式架构(Antfin_SOFA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。