我正在建立一个项目,其中一个主要问题是如何实现一个简单的消息排队系统(类似于messenger聊天系统)。我希望避免轮询,但很可能会有许多并发连接(数万个)。这些将是从应用程序而不是浏览器启动的HTTP+SSL连接。
我找到的一个解决方案是DNS负载平衡:将这些持久连接分布在一堆nginx DNS服务器上。
你认为如何?还有其他可能的解决方案吗?
发布于 2009-02-20 17:45:11
对于负载平衡,保持应用程序服务器的无状态将极大地打开该领域。一旦你得到了它,你就可以自由地使用几乎任何通用的负载均衡器。从HTTP负载均衡器之类的特定协议到通用TCP级别的负载均衡器。
保持它是无状态的,其余的就比较简单了。
发布于 2009-02-20 17:56:34
如果您计划使用web服务(XML消息传递),您可以使用gsoap,它包含一个使用线程池的web服务器示例应用程序。我已经使用这个和mysql (用于持久化状态)运行了一个服务器。我同意Ryan关于减少/消除应用程序的状态性的观点。
发布于 2009-02-20 17:32:05
DNS负载平衡将允许您在多个IP地址之间分发查询,这些IP地址可以是多个服务器。请记住,您的客户端可能会从一个请求到另一个请求获得不同的服务器,因此您的应用程序不能使用本地状态管理。您的应用程序必须将其状态存储在一个集中的位置,如数据库。
https://stackoverflow.com/questions/570487
复制相似问题