Rabbitmq消息队列:Route路由模式简单应用
一、生产者
在发布订阅模式的代码基础上,进行一定的调整,将声明交换机的路由模式调整为direct路由模式。
这个时候需要用到路由key,类似于给消息用来分类的标签。
分别发送三条消息,发向GetOne、GetTwo和GetThree三个路由key:
//声明交换机(类型direct->路由模式) channel.exchangeDeclare(EXCHANGE,"direct"); //发送消息到交换机(交换机无法持久化,如果消息没有及时接收,重启后容易丢失数据) channel.basicPublish(EXCHANGE,"GetOne",null,"这是发送给GetOne的消息".getBytes()); channel.basicPublish(EXCHANGE,"GetTwo",null,"这是发送给GetTwo的消息".getBytes()); channel.basicPublish(EXCHANGE,"GetThree",null,"这是发送给GetThree的消息".getBytes());
二、消费者
定义两个消费者GetOne、GetTwo,在发布订阅模式的代码基础上,进行一定的调整。
绑定交换机时,第二个参数附加需要的路由key,如果需要绑定多个,就分多次绑定。
GetOne绑了GetOne、GetThree两个路由key,如下:
//将队列绑定到交换机(第二个参数是路由的key,需要多个的话就绑多个) channel.queueBind(QUEUE,EXCHANGE,"GetOne"); channel.queueBind(QUEUE,EXCHANGE,"GetThree");
GetTwo绑了GetTwo一个路由key,如下:
//将队列绑定到交换机 channel.queueBind(QUEUE,EXCHANGE,"GetTwo");
三、运行结果
首页也是先启动生产者,初始化需要用到的交换机test-route。
先后依次启动消费者GetOne和GetTwo,再次启动生产者,结果如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 全面指南,95% 的人都不知道的9个技巧(建议收藏)
· 自定义Ollama安装路径
· 本地部署DeepSeek
· 快速入门 DeepSeek-R1 大模型
· DeepSeekV3+Roo Code,智能编码好助手