【问题标题】:Low latency serving same data to many clients (multicasting or not...)向许多客户端提供相同数据的低延迟(多播或不...)
【发布时间】:2014-04-22 20:40:49
【问题描述】:

我需要通过 Internet 向 100 多个客户发送相同的信息。我目前维护一个客户端连接列表并遍历该列表。显然,列表越长,越接近列表末尾的延迟。

我看过多播。但是,除非我遗漏了什么,否则它目前仅适用于基于 LAN 的通信。它需要支持多播的路由器,而大多数路由器不支持。没有一种机制可以让我看到在哪里请求可用的多播地址以避免广播到已使用的地址。

所以我的问题是:

1) 我是否遗漏了什么,我可以使用多播来完成此任务吗? (试了没成功)

2) 除了多播之外,是否有向多个接收者发送相同数据包的捷径?

【问题讨论】:

    标签: multicast


    【解决方案1】:

    我通过在服务器中的线程之间多播解决了这个问题。每个客户端连接都会创建一个对象。这些对象存储在队列中。每个对象都有自己的线程并加入多播组。当服务器向客户端对象多播一个字符串时,列表迭代引起的延迟不再发生。

    时不时会有巨大的延迟(近一秒)。我怀疑这是 JVM 的问题。

    【讨论】:

      【解决方案2】:

      如果您需要高性能低延迟 IO,您应该尝试http://nodejs.org/ 你可能还对一些缓存感兴趣http://memcached.org/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 2021-03-15
        • 1970-01-01
        • 2018-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多