我正在为 webApp 创建一个传输层到前端。用户可以通过移动应用程序、浏览器进行连接。传输层是多个应用程序的前端,包括聊天应用程序、多页 Web 应用程序、通知和电子邮件服务器。规模约为 4000 并发用户。很少有场景不同的服务可能还需要相互交互。例如,聊天服务器可能会发送电子邮件。
我正在寻找这个传输层的最佳设计。整个系统需要部署在云上,但需要独立于供应商。
我的设计: 1. 通过 NettoSphere ( https://github.com/Atmosphere/nettosphere ) 或带有用于 HTTP 轮询的 FallBacks 的 Netty 创建套接字。2. 将 Socket 层与 Redis 之类的 Pub/Sub 连接(目前使用 Cloud 的 Pub/Sub)。每个功能服务器(电子邮件、聊天等)都有自己的频道。
疑问: 1. 我是不是矫枉过正?我可以使用现成的货架库吗?我已经搜索但找不到。我觉得这应该是一个常见的用例,并且应该有现成的东西。2. 对于 Java,Nettosphere 会跨集群扩展吗?或者我应该在 Node.js 中使用 SocketCluster。我更喜欢Java。