我有一个配置,其中3个应用程序在3个不同的虚拟机上运行,并且它们必须通过DDS(即RTPS协议)进行通信。 配置如下:
所有3个都必须位于不同的VM上。
在我们的末端,不允许对MS AZURE VM和我们的网络进行多播。 这是一些问题:
答案 0 :(得分:1)
是否仍然可以通过DDS进行通信?
是的。开箱即用的DDS参与者在启动时仅使用多播来发现其他DDS参与者。可以通过几种方式配置此发现机制。有关如何实现此目标的说明,请参见RTI社区知识库文章:Configure RTI Connext DDS to not use Multicast。
如果是,则通过UNICAST,即对等连接?
是的,使用无组播设置,所有通信都是通过UDP单播,对等,无连接完成的。
如果我已经可以选择基本的UDP套接字编程,在这种情况下使用DDS通讯是否有好处?
将多播与UDP进行比较时,不能使用多播不会消除DDS的任何优势。使用DDS时,传输/发现配置通常对于应用程序是不可见的,并且所有“发布/订阅”概念都保持不变。
如果您要问使用DDS相对于UDP的优势,我认为这值得一个新的问题。答案会非常广泛:-)
在使用DDS进行这种配置时,您能想到任何限制/进一步的问题吗?
使用此配置,您的配置设置将取决于您所运行的网络。这意味着迁移到其他网络可能需要重新配置,例如提供不同的主机名或IP地址。这不方便,但不难。
由于您的环境限制了多播的使用,如果您还没有提到或发现更多限制,我不会感到惊讶。例如,您是否了解防火墙或网络带宽限制?同样,可以将DDS配置为处理此类问题,但是您需要首先了解它们。