Pet*_*ter 6 java server-sent-events spring-boot microservices spring-cloud
语言:Spring Boot、JS
概述:我正在我的应用程序中实现服务器发送事件功能,该功能将部署在云代工厂中,其中基于队列中的新消息(我已在我的微服务中订阅),我将向我的客户端发送一些更新/浏览器(正在使用 EventSource)。为此,我在我的服务器端维护一个 SseEmitters 列表(用于维护所有活动的 SseEmitter)。一旦我从队列中收到一条新消息,根据 id(队列消息中的一个字段),我将把消息发送到相应的客户端。
问题:当我通过创建它的多个实例来扩展我的应用程序时,上述场景将如何工作。由于只有一个实例会收到新的队列消息,因此可能会发生在该特定实例中未维护活动的 SseEmitter,我该如何解决?
为了解决这个问题,可以观察到以下方法。
如果你想一想,知道你的用户(SSE 发射器)在哪里,就像知道某个网站在哪里一样。您可以使用类似 DNS 的协议来确定您的用户所在的位置。协议如下:
如果您使用消息中间件在微服务之间进行通信,则可以使用 AMQP 协议提供的路由功能。协议如下:
在现代 AMQP 代理(如 RabbitMQ)上,绑定并不占用资源。
您的问题很老了,如果您现在还没有弄清楚,希望这会有所帮助。
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |