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

提一个边界性的问题 #32

Open
zxjpro opened this issue Oct 29, 2018 · 3 comments
Open

提一个边界性的问题 #32

zxjpro opened this issue Oct 29, 2018 · 3 comments

Comments

@zxjpro
Copy link

zxjpro commented Oct 29, 2018

先赞叹一下,作者真大牛。

A调用了S1,S2,S3服务,运行正常进入提交事务的过程。S1提交正常,S2提交正常。但是提交S3的时候,可S3的网络出现问题,或者是S3对应的DB3数据库宕机

这个时候会陷入这样的境地,那就是S1,和S2的事务已经提交,没法回滚,也没有办法让S3提交。这个问题要怎么处理?

还有,本地服务的补偿,是一个什么样的机制呢?因为并没有看到关于补偿的介绍

@yu199195
Copy link
Member

raincat 会记录整个日志,如果是你说的情况,在s3启动的时候,通过定时任务进行一次提交。
如果是一个很小概率的问题,几乎是不可能发生的事情,最好的办法就是不解决它。
但是raincat依然花了大力气去解决了它

@zxjpro
Copy link
Author

zxjpro commented Oct 29, 2018

raincat 会记录整个日志,如果是你说的情况,在s3启动的时候,通过定时任务进行一次提交。
如果是一个很小概率的问题,几乎是不可能发生的事情,最好的办法就是不解决它。
但是raincat依然花了大力气去解决了它

定时任务怎么提交呢?因为S3宕机,这个事务应该是关闭了的,那么在启动的时候,怎么重新打开这个事务。
这个事务是数据库的本地事务吗?

@0000005
Copy link
Contributor

0000005 commented Nov 7, 2018

本地事务

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

3 participants