架构必备技能
-
2PC:在各个节点执行commit前,问问协调器,我可不可以提交?只有所有的相关节点都就绪了,所有的节点才能执行提交。
也就是说:各个节点准备就绪后,都会各自告诉协调器,协调器知道了所有都准备就绪才会告诉大家可以commit了。先完成的要阻塞等待没有完成的,所以协调器不能出问题,且性能阻塞不好。
3PC:在2PC的机制上,添加了一个提交前的PreCommit的预提交阶段,也就说:大家收到了准备就绪,多确认一次;
同时添加了再协调器和提交者双端添加超时机制,超时也表示失败;
这两点增强了2PC的稳定性,但未解决性能问题;TCC(Try-Confirm-Cancel)又称补偿事务;注意多了一个补偿机制,当有一个节点失败,此事务相关的节点就要执行补偿方法.性能还行,需要注意幂等.
本地消息表:所谓的本地消息表,就是把某一事务相关的系列数据,通过MQ放到一个中心数据库中.
由一个中心扫描程序进行监控整个事务的执行情况,没有成功就重新提交MQ.失败数太多就最终放弃,并通知相关人:运维,运营,技术,业务发起人。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏