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");
使用虚拟主机最大好处可以区分不同用户的操作空间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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插件