网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

Schiper Eggli Sandoz协议

更新时间:2026年03月27日   作者:spoto   标签(Tag):

Schiper Eggli Sandoz协议用于保持消息的随机排序,即先发送的消息应该先被接收。这与基于每种进程所发送的消息数量来维护向量时钟的做法不同。该协议的向量时钟可以以任意速率进行增加,而且它与当前未处理的消息数量无关。

传递信息:

  • 在发送任何类型的消息之前,系统会列出所有已发送给其他进程的消息的时间戳。
  • 每种类型的信息的时间戳应该被保存在特定的位置中。

收到了一条消息:

如果某个消息在时间戳列表中被提及,那么该消息就无法被发送出去了。

2. 另外,还可以采取以下措施来传达信息:

  • 在消息中,我们包含了以下时间戳列表:
    • 将那些属于其他所有进程的消息的相关信息,也添加到我们的进程列表中。如果我们之前并不了解有任何属于某个特定进程的消息的话,那么我们就需要在新的列表上加上时间戳,这个时间戳应该高于之前保存的时间戳。这样,我们的时间戳就会相应地得到调整。
  • 我们需要更新您所在地区的逻辑时钟。
  • 现在,我们检查一下那些被本地缓冲的消息是否现在可以被传递出去了。
 

在这里,C3:1到C3:2的顺序应该被各个接收器按照这个顺序接收。同样,C1:1到C3:1的顺序也应该被各个接收器按照这个顺序接收。在不同的接收器中,C3:1和C2:1以不同的顺序被接收也是可以的,因为它们是同时发生的。

优点:

在分布式系统的设计中,使用这种协议具有以下主要优势:

  1. 我们的目标是确保“消息发送”与“消息接收”这两个事件之间存在相同的因果关系。也就是说,所有消息都按照它们产生的先后顺序来处理。
  2. 在发送消息时,每个进程都会将其向量时钟增加1。
  3. 如果某个进程在接收到所有消息之前就已经完成了处理,那么这条消息就已被传递给该进程了。
  4. 对于任何进程来说,其对应的发送消息的顺序是不可以被改变的。也就是说,消息的传递顺序不能违背这一规则。
  5. 通过增加逻辑时间的使用频率,可以在较少的基础设施和成本下实现实时处理。

缺点:

在分布式系统的设计中使用这种协议存在一些主要的缺点,具体如下:

  1. 任何能够改变“之前发生的事情”与“相应的发送内容”之间关系的操作,都不会影响消息的传递顺序。
  2. 程序员必须完成所有的任务。
  3. 它的速度较慢,因为建立连接需要一些时间。
  4. 通常,数据传输需要合作才能完成,而这一过程可能会面临许多挑战。
  5. 使用该工具时,无法进行语音或视频通话,也无法使用其他实时应用程序。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料