分布式事务与共识机制:原理、挑战与应用
1 分布式事务实践
1.1 分布式事务概述
分布式事务,特别是基于两阶段提交实现的事务,评价褒贬不一。一方面,它提供了重要的安全保障,这是其他方式难以实现的;另一方面,它也因引发操作问题、降低性能以及承诺过度而受到批评。许多云服务由于其带来的操作问题,选择不实现分布式事务。部分分布式事务的实现会带来沉重的性能损失,例如,MySQL 中的分布式事务据报道比单节点事务慢 10 倍以上。
1.2 分布式事务类型
分布式事务主要分为两种类型:
- 数据库内部分布式事务 :一些分布式数据库(如 VoltDB 和 MySQL Cluster 的 NDB 存储引擎)支持节点间的内部事务,参与事务的节点运行相同的数据库软件。这种事务无需与其他系统兼容,可使用特定协议和优化方法,通常能良好运行。
- 异构分布式事务 :参与者是两种或更多不同技术,如不同厂商的数据库或消息代理等非数据库系统。跨这些系统的分布式事务必须确保原子提交,即使底层系统完全不同。这种事务更具挑战性。
1.3 精确一次消息处理
异构分布式事务能强大地集成不同系统。例如,只有在处理消息的数据库事务成功提交后,消息队列中的消息才能被确认已处理。这通过在单个事务中原子性地提交消息确认和数据库写入来实现。若消息传递或数据库事务失败,两者都会中止,消息代理可安全地重新传递消息。通过原子性地提交消息及其处理的副作用,可确保消息精确处理一次。但这种分布式事务要求受影响的所有系统能使用相同的原子提交协议。
超级会员免费看
订阅专栏 解锁全文
1322

被折叠的 条评论
为什么被折叠?



