2

我收到來自交易所的恢復訂閱源,用於恢復其主要訂閱源中丟失的數據。如何聽多播會傷害我?

交換機強烈建議僅在需要數據時才監聽恢復饋送,並且在恢復我需要的數據後離開多播。

我的問題是,如果我使用asio,並且不需要從NIC讀取數據,那麼有什麼危害?這些消息具有序列號,所以我不會意外地在卡上處理舊消息「左」。

這真的會傷害我的應用程序嗎?

回答

5

很可能傷害你的應用程序這麼多的傷害你的機器 - 因爲網卡仍然配置到組播組,它仍然聽這些消息並通過他們,之前你的軟件會忽略他們,他們被丟棄。這是網絡堆棧和內核所做的大量額外工作,因此一般而言,機器會承擔很多額外的負載,而不僅僅是您的應用程序。

4

收聽您的恢復Feed也可能會對網絡級別產生潛在影響。正如pjz所提到的,您的NIC和IP堆棧將有更多的幀/數據包進行處理。此外,更多的可用帶寬正在被未被應用程序使用的數據用完;這可能會導致丟失的幀,如果你的鏈接擁塞。擁塞是否可能發生取決於您的服務器是否連接了100Mb或1Gb,主機發送/接收的其他流量等。

另一個潛在的問題是對其他主機的影響。如果您的主機所連接的交換機沒有啓用IGMP snooping,則同一VLAN中的所有主機將收到額外的多播通信量,這可能會導致它們遇到與上述相同的問題。

如果您有一個網絡團隊爲您管理您的網絡,可能值得從中尋找一些建議嗎?如果您認爲有必要訂閱冗餘訂閱源,那麼確定網絡中已存在的冗餘級別以及主要訂閱源上的消息丟失的可能性似乎是明智的。

1

的除了muz's評論...

這是不太可能,這將讓你的系統有什麼區別,但它是值得意識到存在與維護組播成員相關的開銷(假設你使用IGMP--考慮到「離開多播」的限制,這可能是合理的)

IGMP需要定期發送和處理多播組成員資格。並且(如muz的評論所暗示),如果您與具有igmp snooping能力的多播源之間有任何交換機或路由器,則它們可以禁用給定網絡的多播。