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

SagaActor 事件处理顺序的问题 #662

Closed
starShinning opened this issue May 26, 2020 · 6 comments
Closed

SagaActor 事件处理顺序的问题 #662

starShinning opened this issue May 26, 2020 · 6 comments

Comments

@starShinning
Copy link

所有收到的事件都会转到kafka/redis/memory中再继续消费,而在使用kafka和redis消费过程中并没有要求顺序执行,这样是否会造成由于消费顺序与事件本身的顺序不一致而导致状态异常?

@coolbeevip
Copy link
Member

在Kafka 中是用 global_ID 做分区的,可以保证一个全局事务内的所有子事务消息是有序消费的

@starShinning
Copy link
Author

也就是redis目前没有强制顺序消费?

@starShinning
Copy link
Author

还有一个问题,在补偿过程中,如果需要对多个子事务进行补偿,目前只看到补偿执行的顺序是逆序,似乎没有看到 强制要求必须在上一个补偿成功以后再调用下一个补偿

@coolbeevip
Copy link
Member

也就是redis目前没有强制顺序消费?

Redis 只是用于持久化 Akka Actor 的状态机信,当几个服务器崩溃后,未执行完毕的 Actor会在另外一台机器上读取Redis并能恢复这个状态机

@coolbeevip
Copy link
Member

还有一个问题,在补偿过程中,如果需要对多个子事务进行补偿,目前只看到补偿执行的顺序是逆序,似乎没有看到 强制要求必须在上一个补偿成功以后再调用下一个补偿

补偿是逆序执行的,并且执行成功一个以后才会执行第二个。

@starShinning
Copy link
Author

还有一个问题,在补偿过程中,如果需要对多个子事务进行补偿,目前只看到补偿执行的顺序是逆序,似乎没有看到 强制要求必须在上一个补偿成功以后再调用下一个补偿

补偿是逆序执行的,并且执行成功一个以后才会执行第二个。

了解了,谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants