Java 多播的替代方案

Java 多播的替代方案,java,networking,multicast,Java,Networking,Multicast,我目前正在开发一个服务器(使用Java),它必须经常(每10-30秒)向多个客户端(10-100)发送几个字节。起初,我考虑使用UDP多播数据报(java.net.MulticastSocket),但我认为这不是一个好的解决方案,因为在大多数路由器上对多播的支持不好 因此,我想知道如果我通过单播将所有数据直接发送到主机,这是否是一个好主意,或者您是否知道任何更优雅/流量更少的消息队列?您是否考虑过使用消息队列,例如?它们有一个很好的特点,即您只需将消息写入队列一次,就可以拥有任意多的读卡器来读取

我目前正在开发一个服务器(使用Java),它必须经常(每10-30秒)向多个客户端(10-100)发送几个字节。起初,我考虑使用UDP多播数据报(java.net.MulticastSocket),但我认为这不是一个好的解决方案,因为在大多数路由器上对多播的支持不好


因此,我想知道如果我通过单播将所有数据直接发送到主机,这是否是一个好主意,或者您是否知道任何更优雅/流量更少的消息队列?

您是否考虑过使用消息队列,例如?它们有一个很好的特点,即您只需将消息写入队列一次,就可以拥有任意多的读卡器来读取队列。

您是否考虑过使用消息队列,例如?它们有一个很好的特点,即您只需将消息写入队列一次,就可以拥有任意数量的读卡器来读取队列。

使用JMS有很多优点,但大多数都使用TCP,您也可以。即使在低带宽网络上,每10-30秒发送几个字节到几百个客户端也是很小的

假设您每10秒向100个客户端发送一条100字节的消息,即每秒1000字节或每秒8Kbits。即使是3G网络也能轻松支持这种带宽。i、 你可以用智能手机来实现这一点


最简单的方法可能是从每个客户端建立一个tcp连接,服务器根据需要发送更新消息。

使用JMS有很多优点,但大多数都使用tcp,您也可以这样做。即使在低带宽网络上,每10-30秒发送几个字节到几百个客户端也是很小的

假设您每10秒向100个客户端发送一条100字节的消息,即每秒1000字节或每秒8Kbits。即使是3G网络也能轻松支持这种带宽。i、 你可以用智能手机来实现这一点


最简单的方法可能是从每个客户端建立tcp连接,服务器根据需要发送更新消息。

您也可以使用应用程序级多播协议。例如,它可以轻松扩展到100个目的地,同时提供一个类似于MulticastSocket的接口并仅使用TCP/IP,因此与不太理想的网络设置兼容。

您还可以使用应用程序级多播协议。例如,它可以轻松扩展到100个目的地,同时提供一个类似于MulticastSocket的接口,并且只使用TCP/IP,因此与不太理想的网络设置兼容。

今年是2011年。仅仅考虑一下优化它的成本就比你在流量上花费的要多。“糟糕的支持”吗?在过去的20年里,大多数路由器都很好地支持多播,但它确实需要配置。但我同意Jochen的观点,即每20-30秒发送几个字节到100个客户端并不值得为优化而担心。如果你正在向一万名客户实时分发一部电影,是的。不,今年是2011年。仅仅考虑一下优化它的成本就比你在流量上花费的要多。“糟糕的支持”吗?在过去的20年里,大多数路由器都很好地支持多播,但它确实需要配置。但我同意Jochen的观点,即每20-30秒发送几个字节到100个客户端并不值得为优化而担心。如果你正在向一万名客户实时分发一部电影,是的。第+1条:如果你想要多播,主题比队列更好。+1条:如果你想要多播,主题比队列更好。