2

我正在为 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。

4

1 回答 1

0

使用 WebSockets 从头开始​​实现简单的 pub/sub 并不难。

但是,一旦您引入了身份验证和/或可扩展性要求,问题就会变得非常困难。如果您觉得您的系统可能需要这两个功能中的任何一个,那么 SocketCluster 应该会为您节省大量时间。

于 2017-12-30T20:44:30.333 回答