我正在构建一个分布式系统,由数百万个客户端组成,它们都需要保持开放的(最好是HTTP)连接,等待来自服务器(运行在其他地方)的命令。消息/命令的负载不会很高,可能是1000个客户端每秒/一条消息,这意味着在1百万个客户端中将产生1000条消息/秒。这基本上涉及并发连接问题。
要求也很简单,单向消息传递(服务器->客户端),每个“通道”只有1个客户端。
我在技术方面非常开放(xmpp / websockets / comet / ...)。我正在使用Google App Engine作为服务器,但他们的“通道”不适用于我(配额太低,没有Java客户端)。XMPP是个选择,但很昂贵。到目前为止,我使用了URL Fetch和Pubnub,但他们开始收取连接费用(非常高)。
所以:
1. 有人知道是否有一个可以以经济实惠的方式为我执行此项任务的服务吗?我发现大多数服务都会限制连接或严重收费。
2. 是否有实现这样的服务器的经验?我已经做过了,它效果非常好(基于Tomcat & NIO),但我还没有时间建立一个大的负载测试环境(部分原因是这仍然是一种后备解决方案,我更喜欢一个经过实战检验的消息服务器)。有多少用户可以在每GB内获得连接?任何硬限制吗?
我的架构也允许分片的消息服务器,但我想最大化并发连接,因为消息处理CPU开销很小。
要求也很简单,单向消息传递(服务器->客户端),每个“通道”只有1个客户端。
我在技术方面非常开放(xmpp / websockets / comet / ...)。我正在使用Google App Engine作为服务器,但他们的“通道”不适用于我(配额太低,没有Java客户端)。XMPP是个选择,但很昂贵。到目前为止,我使用了URL Fetch和Pubnub,但他们开始收取连接费用(非常高)。
所以:
1. 有人知道是否有一个可以以经济实惠的方式为我执行此项任务的服务吗?我发现大多数服务都会限制连接或严重收费。
2. 是否有实现这样的服务器的经验?我已经做过了,它效果非常好(基于Tomcat & NIO),但我还没有时间建立一个大的负载测试环境(部分原因是这仍然是一种后备解决方案,我更喜欢一个经过实战检验的消息服务器)。有多少用户可以在每GB内获得连接?任何硬限制吗?
我的架构也允许分片的消息服务器,但我想最大化并发连接,因为消息处理CPU开销很小。