一个线程事务提交以后,发送消息,消费者消费到消息以后,查询不到该条数据,中间相隔100ms以内
需要提交成功再查看,虽然一般commit的时间非常短,可以看看是不是再查数据就有了
你这里服务器部署是读写分离模式的么?
如果是的话,查下主备节点的 dmarch.ini 中 ARCH_TYPE 是 REALTIME 还是 TIMELY ,如果是 REALTIME 是有可能存在两节点存在时间差的。
对于事务一致性要求高的场景,可以测试下 ARCH_TYPE设置为TIMELY,另外 ARCH_WAIT_APPLY 不设置或设置为1 ,也就是使用事务一致模式。
可以排查下事务是否真正已提交、或者过程中是否还有其他并发事务对该记录进行操作,导致查询数据不符合预期?
以下是通过disql+sh脚本做的简单测试,不会出现事务提交另起事务查询不到数据的情况: