使用Websocket连接创建扇出服务

问题描述 投票:0回答:1

我正在尝试构建一个为最终用户提供实时数据的应用程序。我正在考虑使用 websocket 连接,因为数据很多(10 个事件/秒)。问题是,数据来自第三方的 websocket 连接。 我仅限于 1 个 Websocket 连接,将来我可以要求更多,但只能是几个。

我的想法是设计一个 websocket fanout 服务,其工作原理有点像这样。 提议的设计。 我对这种设计的可靠性以及如何有效地扩展它感到困惑。 这是一个开放式问题,因为我真的正在解决设计细节,但我希望这里有任何有经验的意见。

PS:我要么在后端使用 Node.js 要么使用 Spring boot。

websocket architecture system-design
1个回答
0
投票

我有几个问题:

  • 最终用户如何从中介访问这些数据?是通过 HTTP、Web Sockets、轮询还是 PubSub?
  • 数据如何以中间状态存储(从套接字接收但最终用户未访问)?

由于这类似于一个摄取实时市场数据的系统,我将提出一些建议:

  • 实施该系统的 POC,并检查事件最初发生与最终用户收到事件之间的时间增量。
  • 使用高压缩数据包格式向客户端发送数据(protobuf),因为 JSON 的序列化/反序列化速度慢且体积大
  • 评估需要处理的数据量,并确保中间服务器具有良好的计算能力和足够的内存以提供必要的吞吐量/性能以及能够将数据存储在内存中
© www.soinside.com 2019 - 2024. All rights reserved.