我已经阅读了许多文章并感到困惑。
意见 1:2PC 非常高效,交换的消息数量最少,延迟低。资料来源: http ://highscalability.com/paper-consensus-protocols-two-phase-commit
意见 2:分布式事务很难扩展到高水平,而且它们会降低吞吐量。作为 2PC 保证 ACID 由于其复杂的协调算法,它带来了很大的负担。资料来源:http: //ivoroshilin.com/2014/03/18/distributed-transactions-and-scalability-issues-in-large-scale-distributed-systems/
意见 3:“一些作者声称两阶段提交太昂贵而无法支持,因为它带来了性能或可用性问题。我们认为最好让应用程序程序员在出现瓶颈时处理由于过度使用事务而导致的性能问题,而不是总是围绕缺乏事务进行编码。在 Paxos 上运行两阶段提交可以缓解可用性问题。” 资料来源:http ://courses.cs.washington.edu/courses/csep552/13sp/lectures/6/spanner.pdf
意见 4:2PC 协调器也代表单点故障,这对于关键系统来说是不可接受的——我相信它是一个协调器。资料来源: http: //www.addsimplicity.com/adding_simplicity_an_engi/2006/12/2pc_or_not_2pc_.html
前 3 种观点相互矛盾。我认为第4个是正确的。请澄清什么是错误的,什么是正确的。给出事实为什么会这样也很好。