2

我收到来自交易所的恢复订阅源,用于恢复其主要订阅源中丢失的数据。如何听多播会伤害我?

交换机强烈建议仅在需要数据时才监听恢复馈送,并且在恢复我需要的数据后离开多播。

我的问题是,如果我使用asio,并且不需要从NIC读取数据,那么有什么危害?这些消息具有序列号,所以我不会意外地在卡上处理旧消息“左”。

这真的会伤害我的应用程序吗?

回答

5

很可能伤害你的应用程序这么多的伤害你的机器 - 因为网卡仍然配置到组播组,它仍然听这些消息并通过他们,之前你的软件会忽略他们,他们被丢弃。这是网络堆栈和内核所做的大量额外工作,因此一般而言,机器会承担很多额外的负载,而不仅仅是您的应用程序。

4

收听您的恢复Feed也可能会对网络级别产生潜在影响。正如pjz所提到的,您的NIC和IP堆栈将有更多的帧/数据包进行处理。此外,更多的可用带宽正在被未被应用程序使用的数据用完;这可能会导致丢失的帧,如果你的链接拥塞。拥塞是否可能发生取决于您的服务器是否连接了100Mb或1Gb,主机发送/接收的其他流量等。

另一个潜在的问题是对其他主机的影响。如果您的主机所连接的交换机没有启用IGMP snooping,则同一VLAN中的所有主机将收到额外的多播通信量,这可能会导致它们遇到与上述相同的问题。

如果您有一个网络团队为您管理您的网络,可能值得从中寻找一些建议吗?如果您认为有必要订阅冗余订阅源,那么确定网络中已存在的冗余级别以及主要订阅源上的消息丢失的可能性似乎是明智的。

1

的除了muz's评论...

这是不太可能,这将让你的系统有什么区别,但它是值得意识到存在与维护组播成员相关的开销(假设你使用IGMP--考虑到“离开多播”的限制,这可能是合理的)

IGMP需要定期发送和处理多播组成员资格。并且(如muz的评论所暗示),如果您与具有igmp snooping能力的多播源之间有任何交换机或路由器,则它们可以禁用给定网络的多播。