在基于云的环境中配置发现的开箱即用解决方案
介绍
RTI Cloud Discovery Service是在无法使用UDP / IP多播的动态环境中部署RTIConnext®DDS应用程序所需的独立应用程序。 这是典型的广域网或某些基于云的环境,其中路由器和交换机可能会禁用IP多播转发。
DDS具有内置的发现机制,允许所有DDS应用程序自动检测其他应用程序的存在,并发现它们发布和订阅的主题以及相关的数据类型和服务质量(QoS)。
内置发现机制主要依靠UDP / IP多播来引导其他DDS应用程序的检测并了解其网络地址。使用UDP / IP多播允许DDS发现完全是点对点的 - 也就是说,无需任何其他服务器或代理即可运行。 应用程序本身可以直接发现彼此。
但是,如果Connext DDS应用程序在UDP / IP多播不可用的环境中运行,则内置(对等)发现是不够的。 Connext DDS提供两种机制来帮助解决这些问题:
- 对于先验已知应用程序的网络地址的静态环境,您可以将应用程序配置为自动检查这些地址是否存在其他应用程序。 这是通过配置Initial Peers来完成的。
- 对于事先不知道网络地址的动态环境,或者在列表太大或管理繁琐的情况下,您可以利用RTI Cloud Discovery Service。 此外部服务充当Connext DDS应用程序的可靠“会合点”,以了解其他DDS应用程序的状态和网络地址。 这可以通过将Initial Peers设置为包括Cloud Discovery Service来完成。
图1. Cloud Discovery服务概述
图1显示了Cloud Discovery Service操作的简单表示。 它充当“中继”服务,转发引导程序(参与者公告)消息,允许DomainParticipants了解其他DomainParticipants的存在。
基础
Cloud Discovery Service使用标准的简单发现协议(SDP) [ 1 ]运行 。 在SDP中,DomainParticipants最初向所有指定的初始对等方公布其存在。 这些参与者公告包含其他DomainParticipants发现其存在和引导通信的必要信息。 这些消息还用于维护参与者的活力。
图2. Cloud Discovery服务转发参与者公告消息
Cloud Discovery Service 侦听参与者通知,以动态了解DomainParticipants的当前列表,其DDS域ID及其网络地址。
图2说明了每个 DomainParticipant 在其Initial Peers中 包含 Cloud Discovery Service 实例。因此, DomainParticipant 会将参与者公告发送给 Cloud Discovery Service ,后者会将这些公告转发给 它知道 的 DomainParticipants 列表 ,使他们能够在 这些公告 中启动发现过程。
图3. DomainParticipants交换参与者公告消息
图3说明一旦DomainParticipant发现另一个存在(通过来自Cloud Discovery Service的转发消息),它就会直接发送其Participant Announcement消息。 此步骤与DomainParticipant在其Initial Peers中包含其他DomainParticipant或使用多播来宣布其存在时相同。 这些消息还用于维护参与者的活力。
图3显示,一旦DomainParticipant收到Cloud Discovery Service转发的另一个公告,它就可以直接发送参与者公告。 此步骤与DomainParticipant在其Initial Peers中包含其他DomainParticipant或使用多播来宣布其存在的步骤相同。
图4.域参与者Exchange端点发现消息
图4说明了一旦DomainParticipants彼此了解,他们就会交换端点发现信息。 也就是说,有关DataWriters和DataReader的信息。 Cloud Discovery Service的存在不会改变此步骤。
Cloud Discovery Service的优点
- 即使没有可用的多播,也无需预测或维护对等列表,动态发现仍然可行。
- Cloud Discovery Service可在DDS环境中无缝集成。 由于它在RTPS [2]级别运行,因此RTI Connext应用程序不需要任何特殊行为或协议。 他们只需要配置其初始对等方以包含运行Cloud Discovery Service的位置。 由于这在运行时都是可配置的,因此无需重新编译应用程序。 这意味着Cloud Discovery Service还可以使用现有服务,例如RTI路由服务,Connext DDS Micro或其他DDS-RTPS实施。
- 发现仍然是在所有DomainParticipants中执行的分布式过程。 这允许您动态扩展系统,并避免集中和瓶颈服务器。