分布式事务
1、 强一致性:2pc提交,会锁定涉及到事务的资源,造成堵塞。
TransactionScope(.net framework有,core没有,限制在windows)是其中一种实现方法
2、 弱一致性:
tcc(try-confirm-cancel):一个接口变三个接口,try接口、提交接口、取消接口
saga
3、 最终一致性:base理论(基本可用,中间允许存在软状态,最终一致性)
基于本地消息表分布式事务(MQ分布式事务)
Ncc-cap:把其他服务要做的事写进本地数据库(publish表),跟本服务要做的事合成一个本地事务(一起成功或一起失败),cap负责把publish表的数据发送到MQ(rabbitmq、kafka),然后其他服务读取MQ里的数据写进本地数据库(receive表),再结合本服务要做的事合成本地事务,还可以继续发布数据到本地publish表,供其他服务消费。
4、 Tidb(分布式数据库)
如果一套微服务只对应一个tidb集群,则可以不考虑分布式事务了,如果有不止一个tidb集群,再采用基于本地消息表分布式事务。