本文介绍: 服务发现将根据服务实例处于以下三个阶段之一:• 初始等待阶段• 重复阶段• 主要阶段一旦系统启动并且用于服务实例的接口连接已建立,服务发现将进入该服务实例的初始等待阶段。在进入初始等待阶段并在发送第一条服务实例的消息之前,服务发现实现应根据初始延迟(INITIAL_DELAY)进行等待。初始延迟(INITIAL_DELAY)应定义为最小延迟和最大延迟。等待时间应通过在最小延迟和最大延迟之间选择一个随机值来确定。为了将不同类型的多个条目合并为较少的消息数,服务发现应使用相同的随机值。

服务发现通信行为

启动行为

服务发现将根据服务实例处于以下三个阶段之一:
• 初始等待阶段
• 重复阶段
• 主要阶段

一旦系统启动并且用于服务实例的接口连接已建立,服务发现将进入该服务实例的初始等待阶段。

在进入初始等待阶段并在发送第一条服务实例的消息之前,服务发现实现应根据初始延迟(INITIAL_DELAY)进行等待。

初始延迟(INITIAL_DELAY)应定义为最小延迟和最大延迟。

等待时间应通过在最小延迟和最大延迟之间选择一个随机值来确定。

为了将不同类型的多个条目合并为较少的消息数,服务发现应使用相同的随机值。

在发送第一条消息之后,进入该服务实例/这些服务实例的重复阶段。

服务发现实现应根据 REPETITIONS_BASE_DELAY 在重复阶段进行等待。

在重复阶段发送的消息之间的延迟会加倍。

在重复阶段期间,服务发现应仅发送 REPETITIONS_MAX 个数据包。

如果 REPETITIONS_MAX 设置为0,则应跳过重复阶段,并在初始等待阶段后进入服务实例的主要阶段。

在重复阶段之后,将进入服务实例的主要阶段。

在重复阶段,如果配置了 CYCLIC_OFFER_DELAY,则应周期性地发送Offer Messages和Publish Messages。

在进入主要阶段后,等待1*CYCLIC_OFFER_DELAY时间后再发送第一条消息。

在发送特定服务实例的消息后,服务发现会在发送下一条服务实例的消息之前等待1*CYCLIC_OFFER_DELAY时间。

对于请求/订阅,应使用参数CYCLIC_REQUEST_DELAY实现与Offer相同的周期行为,而不是CYCLIC_OFFER_DELAY。

示例:

初始等待阶段:

• 等待范围为(INITIAL_DELAY_MIN, _MAX)的随机延迟

• 发送消息

重复阶段 (REPETITIONS_BASE_DELAY=100ms, REPETITIONS_MAX=2):

• 等待 2^0*100ms

• 发送消息

• 等待 2^1*100ms

• 发送消息

• 等待 2^2*200ms

主要阶段 (只要消息处于活动状态且定义了CYCLIC_OFFER_DELAY):

• 发送消息

• 等待 CYCLIC_OFFER_DELAY

服务器响应行为

服务发现应该延迟多播/广播应答,以响应对于查找服务条目和查找事件组条目的请求,以及对于请求服务条目和订阅事件组条目的多播/广播应答。延迟的时间由REQUEST_RESPONSE_DELAY定义。

如果通过单播消息回答单播消息,则不应用REQUEST_RESPONSE_DELAY。

延迟仅适用于Instance ID设置为ANY(0xFFFF)的查找服务和查找事件组消息。

Instance ID非0xFFFF的查找服务和查找事件组消息应立即回答,无需延迟。

REQUEST_RESPONSE_DELAY应指定最小值和最大值。

实际延迟时间应在REQUEST_RESPONSE_DELAY的最小值和最大值之间随机选择。

如果上次提供的服务是在发送上次消息时距离1/2 CYCLIC_OFFER_DELAY之内(对于请求/订阅则是1/2 CYCLIC_REQUEST_DELAY之内),则接收到Unicast标志设置为1的查找消息应以单播响应方式回答。

如果上次提供的服务是在1/2 CYCLIC_OFFER_DELAY或更长时间之前发送的(对于请求/订阅是1/2 CYCLIC_REQUEST_DELAY或更长时间之前),则接收到Unicast标志设置为1的查找消息应以多播响应方式回答。

接收到Unicast标志设置为0(多播)的查找消息应以多播响应方式回答。

状态机

在本节中,将展示客户端和服务器的状态机。

图片

图片

原文地址:https://blog.csdn.net/Xuesengxinyi/article/details/135955933

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_65773.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注