使用 Spring 和外部消息代理进行消息传递

Posted

技术标签:

【中文标题】使用 Spring 和外部消息代理进行消息传递【英文标题】:Messaging with Spring and external Message Brokers 【发布时间】:2014-09-02 14:02:28 【问题描述】:

我的用例考虑了三个参与者:

消息生产者(例如,远程后端); Message Broker(例如,RabbitMQ); Message Consumer(一个Spring-基于 Web 应用程序是自己的AS)。

通信过程如下:

    Message Producer 创建一条消息(通过指定recipient),然后将其发送到Message BrokerMessage Broker 将消息中继到 Message ConsumerMessage Consumer 接收消息,然后使用 将其传递给特定用户(通过映射 recipientusername) >WebSocket

这个场景可以实现吗?

【问题讨论】:

【参考方案1】:

是的,这种情况绝对可以实现。它有什么特定的部分让你感到困扰吗?如果您没有在场景中使用消息使用者来执行任何其他操作,您实际上可以忽略该部分并直接在浏览器端使用消息。

这将涉及使用 STOMP 协议,大多数消息代理要么支持开箱即用,要么可以通过插件(包括 RabbitMQ 顺便说一句)启用。在浏览器端,您可以使用 StompJS。去年,Rossen Stoyanchev 在 SpringOne2GX 上就此做了一场精彩的演讲——幻灯片在这里......

http://rstoyanchev.github.io/s2gx2013-websocket-browser-apps-with-spring/#1

我希望这对你有用。

【讨论】:

首先感谢您的回答。作为 Message Broker 和 WebSocket 的新手,我不明白在第 1 步中如何正确设置接收者,然后如何在 Spring 中实现处理程序以便在第 3 步中仅向特定用户发送消息。跨度> 这在很多地方都有介绍,但手册本身应该让您很好地了解从哪里开始。docs.spring.io/spring/docs/4.0.2.RELEASE/… 您可能还想看看speakerdeck.com/salmar/deep-dive-into-spring-websockets 以了解有关消息流的更多信息

以上是关于使用 Spring 和外部消息代理进行消息传递的主要内容,如果未能解决你的问题,请参考以下文章

将消息从 Node.js 传递到外部系统?

Spring Boot与消息

Spring Boot 入门之消息中间件篇

SpringBoot Spring和消息队列RabbitMQ

Spring Boot 与消息

Spring Boot与消息(rabbtiMQ)