假设您有两台服务器,每台服务器有8个CPU核心。
每个服务器运行8个networking服务,每个networking服务都承载任意数量的长期TCP / IP客户端连接。
客户发送消息到服务。
服务根据消息做一些事情 ,并且可能通知客户端状态变化的N> 1。
当然,这听起来像是一个僵尸networking,但事实并非如此。 考虑IRC如何与c2s和s2s连接以及s2s消息中继协同工作。
你将如何协调主机应该接收哪些服务,并将消息转发给连接的客户机以获取状态改变消息?
有很多方法可以有效地解决这个问题。
我正在寻找一个解决scheme:
你有什么经验?
你有什么build议?
谢谢!
如果:
然后,IPv4多播将为您正在尝试做的事情而开箱即用。 接收者订阅一个通道(多播组),发送者发送一个UDP数据报到组播组地址,交换机解决谁得到什么。 它使您的networking设备智能地处理消息路由。
如果您的交换机不支持IGMP侦听,则会将(以太网)多播帧视为广播,并将其发送到VLAN上的所有主机,而不pipe主机是否请求它们。 因此,即使主机操作系统在到达任何应用程序之前丢弃了数据包,也会堵塞交换机和主机之间的pipe道。
如果IPv4组播不在同一个VLAN中,您仍然可以使用IPv4组播,但是您必须在设备上进行更多configuration才能使其发挥作用,但仍然可以正常工作。