随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

RabbitMQ使用

1、工作队列
现在的程序只定义有一个生产者和一个消费者,如果说现在有一个生产者对应多个消费者呢?那就表示一个工作队列,而工作队列的最大特征在于:若干个消费者一起完成工作。

当启动了多个消费者之后,这些消费者会一起共同完成所发出的消息消费处理,这样的处理可以保证消息处理的速度更加的快速。但是千万要记住,此时使用的是普通队列消息。

所以队列消息之中的所有消费者会自动进行负载均衡设计。

2、消息持久化
在之前所创建的消息队列形式实际上都会发现有一个持久化的选项,所谓的持久化的本质在于:即便RabbitMQ服务停机之后,其未消费的消息也可以在重启之后进行消费处理。
2.1、观察临时消息处理,在RabbitMQ里面队列可以由用户在使用的时候创建,

public static final String QUEUE_NAME = "lynch.msg.queue.tmp";
channel.queueDeclare(ConnectionUtils.QUEUE_NAME, false, false, true, null);

 

这个时候如果服务器关闭了,并且有未消费的消息存在,则在重新启动之后,这些消息将会被清空,如果不想清空则要建立持久化消息。

2.1、建立持久性消息

public static final String QUEUE_NAME = "lynch.msg.queue.persistent";
channel.queueDeclare(ConnectionUtils.QUEUE_NAME, true, false, true, null);
//如果不编写MessageProperties.PERSISTENT_TEXT_PLAIN,则消息无法被持久化
channel.basicPublish("", ConnectionUtils.QUEUE_NAME, MessageProperties.PERSISTENT_TEXT_PLAIN,message.getBytes());

 

3、虚拟主机
虚拟主机可以理解为RabbitMQ中的重大特点,实际上在之前就已经存在有虚拟主机了。因为每一个rabbitmq如果没有配置则会默认一个虚拟主机的信息,当然,用户也会建立属于自己的虚拟主机,并且每一个虚拟主机里有自己的队列信息。

3.1、虚拟主机的配置最简单的做法就是直接在控制台上通过界面创建

如果你不想通过界面进行创建,那么也可以使用命令行的模式完成:rabbitmqctl.
cd D:\dev\RabbitMQ Server\rabbitmq_server-3.8.5\sbin\rabbitmqctl

3.2、那么随后如果要想在项目之中去使用虚拟主机,则要在链接处进行配置:

// vhost_lynch、/vhost_lynch为两个不同的虚拟主机
factory.setVirtualHost("/vhost_lynch");
factory.setUsername("lynch");
factory.setPassword("lynch");


使用虚拟主机最大好处可以区分不同用户的操作空间。

posted on   Ruthless  阅读(362)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2018-07-05 centos7 常用工具包安装
2017-07-05 系统启动时队列自动下单--ServletContextListener
2011-07-05 axis2+spring集成
2011-07-05 Myeclipse6.0安装svn插件
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示