java多服务器聊天架构

java多服务器聊天架构,java,chat,nio,livechat,multiserver,Java,Chat,Nio,Livechat,Multiserver,我现在正准备开始开发一个聊天工具,它实际上是使用多个服务器来移植一个旧的单服务器版本 我想使用JavaNIO库 我之所以这样做,是因为当前的实现在连接大量客户机(大约10k)时运行非常缓慢,而且当前的实现基于IO套接字库。我还估计,在1年内,将有大约4-5万名实时客户 所以。。我有几个问题: 您认为/估计NIO可以处理多少个客户端,因为我听说它比旧的套接字实现好得多? 你有什么想法吗?或者你可以告诉我一些已经实现的使用多服务器聊天的架构。 在使用多服务器体系结构时,我可能会面临哪些主要问题? 提

我现在正准备开始开发一个聊天工具,它实际上是使用多个服务器来移植一个旧的单服务器版本

我想使用JavaNIO库

我之所以这样做,是因为当前的实现在连接大量客户机(大约10k)时运行非常缓慢,而且当前的实现基于IO套接字库。我还估计,在1年内,将有大约4-5万名实时客户

所以。。我有几个问题:

您认为/估计NIO可以处理多少个客户端,因为我听说它比旧的套接字实现好得多? 你有什么想法吗?或者你可以告诉我一些已经实现的使用多服务器聊天的架构。 在使用多服务器体系结构时,我可能会面临哪些主要问题?
提前感谢

从NIO库的角度来看,我认为没有任何限制。最终,性能取决于服务器和网络配置

您可能希望了解一下NIO框架

ApacheMina是一个网络应用程序框架,帮助用户轻松开发高性能和高可扩展性的网络应用程序。它通过Java NIO通过TCP/IP和UDP/IP等各种传输提供抽象的、事件驱动的、异步的API

Apache MINA通常被称为: . NIO框架·库, . 客户端·服务器框架·库,或
. 网络·套接字库。

如果没有性能测试,很难给出评估;您可以支持的客户端数量将根据内存、处理器速度/负载、带宽/容量、延迟要求、存储要求而有所不同

有几种方法可用于在服务器之间共享数据;我会选择它们之间的广播/多播UDP,因为这是最具伸缩性的方法

您可能面临的最大问题是如何应对服务器中断,以及如何正确处理负载平衡

编辑
如果服务器对服务器不依赖于NIO,那么发布/订阅模式下的JMS可能是一个不错的解决方案。

JBoss HornetQ JMS消息代理会是一个选项吗?在Linux上,他们为消息持久性提供了AIO,他们声称这非常快:-使用发布/订阅通信模型,可以轻松实现聊天。它可以是集群的。