【发布时间】:2015-03-02 20:59:08
【问题描述】:
我正在设计一个 API 来使用来自应用程序的消息,该应用程序将生成大量数据;即使对于较小的客户端,也可能达到 10+ GB/s。我正在寻找一种协议,它允许我以一种易于客户使用的方式传递这些数据。
对我来说显而易见的答案是:拆分消息,以便它们可以在多个连接上使用。每个连接将消耗总负载的一小部分。
但如果我这样做,我需要考虑以下几点:
- 用户如何知道他们落后并需要启动更多连接?
- Twitter 说 consumers should check timestamps,这可能对我们有用
- 当他们启动新连接以消耗更多数据时,他们如何指定这是同一消耗会话的一部分?
- 我们可以为会话命名,将其与 "direct" amqp queue 关联起来,然后让我们的队列完成这项艰巨的工作
- 我是否遗漏了一些非常重要的东西。
- 可能。
出于这个原因,我更喜欢已经存在的协议。
该协议将被视为非常棒如果它:
- 对 websocket 或流式 HTTP 友好
- 支持数据压缩
【问题讨论】:
标签: sockets streaming bigdata network-protocols