组通信系统详解
1. 组通信系统概述
组通信系统能极大简化基于状态机的容错系统的实现,它提供以下服务:
- 消息的全序可靠多播 :确保所有服务器副本以相同的全序接收来自客户端的相同请求集,这对维护副本一致性至关重要。
- 成员服务 :容错系统用于处理进程和通信故障。当某个副本无法访问时,组通信系统能自动重新配置系统。成员服务会将配置更改和新配置中的成员列表通知给存活的服务器副本及其客户端。
- 视图同步服务 :为确保不同重新配置之间的副本一致性,成员变更通知必须相对于重新配置更改前后的常规多播消息进行全序排序,以便不同副本对配置更改以及配置更改前后多播的消息有一致的视图。通常,两次连续重新配置之间的时间段称为一个视图。
2. 实现消息全序的方法
基于实现消息全序的机制,常见的方法有:
| 方法 | 描述 |
| ---- | ---- |
| 基于排序器 | 指定成员中的一个节点为每个应用消息分配全局序列号(代表全序),该节点作为整个系统的排序器。可以始终使用特定节点作为排序器,也可以让成员节点轮流担任(旋转排序器)。只要系统一次只允许一个排序器操作,就能保证消息全序。 |
| 基于发送者 | 系统确保成员节点轮流进行多播,所有多播消息自然实现全序。该方法也使用全局序列号表示每个发送请求的全序。节点通过传递虚拟令牌获取发送权限,令牌携带历史信息,如最后发送消息的序列号。发送完成后,将令牌传递给成员列表中的下一个节点。 |
| 基于向量时钟 | 利用向量时钟捕获不同消息之间的因果关系。每
超级会员免费看
订阅专栏 解锁全文
7万+

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



