【发布时间】:2016-01-27 18:01:10
【问题描述】:
目前我正在微服务架构中构建应用程序。
第一个应用程序是一个API,它执行用户身份验证,接收请求以启动/保持与用户的实时连接(通过 Socket.io 或 SockJS),系统将套接字 ID 存储到用户对象。
第二个应用程序是一个WORKER做一些事情,有时他必须向用户发送实时数据。
问题是:第二个应用程序(WORKER)应该如何向用户发送实时数据?
WORKER 是否应该向 API 发送消息,然后 API 将此消息转发给用户? 或者 WORKER 可以直接将消息发送给用户?
谢谢
【问题讨论】:
-
在第一个场景中,用户需要一个与 APi 和 worker 的活动套接字连接。在第二种情况下,它只需要一个 API。此外,如果 Worker 可以直接发送给用户,您很可能需要在 API 和 Worker 上复制所有用户身份验证和管理。
-
最后我实现了第三个服务来处理所有的 websockets 连接。然后 API 和 Workers 可以通过内部的 pubsub 系统发送 websockets 消息与 Websocket 服务通信。
标签: session socket.io real-time microservices sockjs