1. 分布式概述
1.1 什么是分布式
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标.可以分为分布式计算,分布式存储,分布式数据库等.
优势:
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
挑战:
- 普遍节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全
2. 分布式事务的常见实现方式
- 两阶段提交:在2PC协议中,事务协调器负责协调各个参与者的事务操作。它通过两个阶段的确认,即准备阶段和提交阶段,来保证所有参与者的一致性。尽管2PC能够保证数据的一致性,但存在协调器单点故障和阻塞等问题。
- 补偿事务:补偿事务通过在系统中引入补偿操作,使得即使某个操作失败,可以通过执行相应的补偿操作来回滚或修复数据,保持数据的一致性。补偿事务的实现需要在业务逻辑中定义补偿操作,并确保补偿操作的正确性和幂等性。
3.常见的分布式系统
分布式存储
- Google File System(GFS): google分布式文件系统
- Ceph: 统一的分布式存储系统
- Hadoop HDFS: 基于GFS架构的开源分布式文件系统
- Zookeeper: 高可用的分布式数据管理与系统协调框架
分布式数据库
-
Google Spanner: google可扩展的、全球分布式的数据库
-
TiDB: 开源分布式关系型数据库
-
HBase: 开源Nosql数据库
-
MongoDB: 文档数据库