![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ
liuhenghui5201
这个作者很懒,什么都没留下…
展开
-
RabbitMq(十七)rabbitmq的四种集群监控
rabbitmq的四种集群监控方式:rabbitmq控制台页面监控 tracing日志监控 使用api接口自定义实现监控 使用Zabbix监控rabbitmq第一种、使用控制台页面监控rabbitmq网址:http://mq服务ip:15672 登录,可以根据不同菜单中对各项信息进行查看。第二种、通过tracing日志查看消息的发送流程参阅文章:消息的追踪查看配置及查看方法,通过log文件信息查看消息的发送、接收时间。第三种、通过restful api接口自定义监控.原创 2020-07-25 11:29:06 · 1292 阅读 · 1 评论 -
RabbitMq(十六)单机多实例集群搭建步骤介绍
在单机环境搭建rabbitmq多节点集群步骤如下:首先保证当前安装的rabbitmq程序是正常安装,并正常启动过的,首先需要先停掉rabbitmq节点,保证服务未在运行中(可以激主机重启一下,或通过命令停掉运行中的服务)。接下来逐步操作配置集群:1,添加第一个node节点使用命令:sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &&表示后台进行启动。,2,添加第原创 2020-07-24 17:12:59 · 722 阅读 · 1 评论 -
RabbitMq(十五)消息的追踪查看配置及查看方法
消息追踪使用的是rabbitmq的trace插件,trace相关命令如下:rabbitmq-plugins list 查看所有安装插件列表 rabbitmq-plugins enable rabbitmq_tracing 启用trace插件 rabbitmqctl trace_on 打开trace开关 rabbitmqctl trace_on -p myhost 给myhost虚拟主机添加trace消息追踪 rabbitmqctl trace_off 关闭trace开关 rabbitm...原创 2020-07-24 15:04:42 · 13561 阅读 · 0 评论 -
RabbitMq(十四)消息的事务支持及代码演示
在rabbitmq中我们也有类似数据库的事务需求,及当程序运行过程中出现异常时,不能完整的执行一个流程时,为了保持功能完整性,我们需要将之前发送的消息也不让他发送出去,此时就需要使用到rabbitmq的事务功能。rabbitmq的事务功能与消息确认机制不能共存,只能同时使用其中一种。 在资源文件中我们需要引入外部的事务管理器transactionManager来控制rabbitmq的事务。以及在资源文件中配置其消息发送对象时声明channel-transacted="true" ...原创 2020-07-24 12:38:26 · 2221 阅读 · 4 评论 -
RabbitMq(十三)消息发送确认与回调机制
在rabbitmq中如何确认消息发送到交换机上以及是否正常交换机转发到消息队列上,在rabbitmq上均有其确认实现接口。confirm-callback :消息确认机制,也就是消息是否正常发送到交换机的回调,内部可以实现正常与失败的区分处理。 return-callback:消息的失败回调处理,也就是消息通过交换机时没有正常转发到消息队列中时触发。代码实现参考:pom文件 springboot的application.properties spring资源文件spring/spring-r原创 2020-07-23 22:23:20 · 5581 阅读 · 0 评论 -
RabbitMq(十二) 借用死信交换机实现延迟队列
概述:延迟队列即在消息发送后延迟固定时间后再去接受处理,做相应的一些相应。应用场景举例:在电商购物后,订单支付前发送消息信息,在三分钟之后检查订单是否支付成功,如果支付,则取消订单并库存数量恢复;或者一些其他需要延迟处理场景。借助死信交换机实现消息延迟接收处理,mq中的消息流转图如下:代码可以参考RabbitMq(十一) 死信交换机DLX介绍及使用进行实现。...原创 2020-07-23 20:13:05 · 242 阅读 · 0 评论 -
RabbitMq(十一) 死信交换机DLX介绍及使用
概述: 死信交换机(DLX dead-letter-exchange)和普通交换机一样,也是一种普通的交换机,只不过一般交换机处理正常的消息,而死信交换机是接收被删除的消息。绑定到死信交换机的队列成为死信队列。死信队列由我们创建指定,而非有系统默认的死信队列。被删除的消息一般分为两类:1,时间上过期后被队列删除的消息;2,在指定了固定大小的队列中,由于消息数量超过队列指定的大小,最先进入消息队列的消息被顶出来的消息。下来我们通过一张图来了一个消息从发送到进入死信队列的过程 ...原创 2020-07-23 17:37:39 · 1958 阅读 · 0 评论 -
RabbitMq(十) 消息过期时间TTL介绍以及代码实现
概述: 在rabbitmq中我们可以给消息设定过期时间,在消息发送后过期时间段内未被消费,则系统会将其删除,被删除的消息将会进入死信队列。关于设置消息的过期时间有两种设置方式。1,可以设置在消息队列上,则经过该消息队列的消息都会使用该消息对列的过期时间;2,也可以将过期时间设置在消息体上,对消息进行单独的消息过期时间设置。如果在经过一个设置了过期时间的队列的并且自身也设置了过期时间的消息,则其过期时间取决于两者时间较小的一个。接下来我们本章将在上一章《RabbitMq(八) Sprin...原创 2020-07-15 18:17:22 · 2126 阅读 · 0 评论 -
RabbitMq(九) SpringBoot整合RabbitMQ消费者示例代码
概述 在上一篇我们介绍了SpringBoot整合RabbitMQ生产者代码,本章我们介绍SpringBoot整合RabbitMQ,实现消费者工程的代码实现。与生产者集成相比,集成消费者不需要进行添加配置类声明队列交换机等,也不需要web相关代码。只需要指定消息队列名称即可,主要步骤:创建Maven工程, 调整pom声明为SpringBoot工程,并引入RabbitMQ依赖; 创建SpringBoot启动类 添加配置文件 编写mq监听代码一、创建maven工程以及加入相关依赖...原创 2020-07-12 15:58:52 · 1468 阅读 · 2 评论 -
RabbitMq(八) SpringBoot整合RabbitMQ 生产者代码实现
在本章中我们将创建俩个工程分别为RabbitMQ的生产者工程以及消费者工程。springboot整合RabbitMQ生产者工程步骤如下:创建maven工程 引入springboot及RabbitMQ依赖 创建SpringBoot启动类 添加配置文件 编写RabbitMQ配置类 编写发送消息类或者单元测试类一、创建maven工程以及添加主要依赖。创建maven工程略过,springboot工程我们首先需要加入parent标签指明为SpringBoot工程,然后我们引入amqp的star原创 2020-07-12 15:13:02 · 1643 阅读 · 0 评论 -
RabbitMq(七) Topic模式介绍及代码示例
概述: 在上一文章中我们介绍了路由模式(Routing),routing模式是不同的消息队列绑定了不同的路由key,但是我们看出路由key为固定的字符串标记。而本章中的Topic模式则为在路由模式下,我们在绑定消息队列到交换机时指定的路由key为一个表达式,如:“”“stock.usd.nyse”,“nyse.vmw”,“quick.orange.rabbit”。该routingKey表达式必须使用点隔开的任意多个英文单词。另该交换机类型需要调整为topic类型。 在...原创 2020-07-08 23:35:04 · 2310 阅读 · 0 评论 -
RabbitMQ(六) Routing路由模式
概述 所谓RabbitMq中路由模式(Routing)为我们在将发送消息队列以及接收消息队列(queue)绑定到交换机(exchange)时指定了一个RoutingKey。然后我们在通过连接信道向交换机发送消息时指定一个RoutingKey,交换机会将该消息发送到routingKey对应的接收队列上。在Routing模式中我们使用的交换机类型为direct。代码示例:生产者代码:...原创 2020-07-08 00:02:51 · 357 阅读 · 0 评论 -
RabbitMQ(五) 订阅发布者模式介绍以及代码实现
概述: 在上一章节介绍的工作模式中,我们的消费会进行轮询发送给所有的消息消费者,每个消费者接受消息之和为全部消息。本章节介绍的订阅发布者模式则为:将消息传递给所有的消息消费者,每个消费者都能接受到全部的消息。并且在订阅发布章节我们将新引入一个新的概念,交换机(Exchange)概念。一、pom.xml 依赖只需要引入rabbitMq的依赖即可<?xml version="1.0" encoding="UTF-8"?><project xmlns="http...原创 2020-06-04 21:33:51 · 756 阅读 · 0 评论 -
RabbitMQ(四) Work模式下的消息产生以及消费代码实现示例
在工作队列中,我们有多个消息的消费者,每个消费者都会进行消息消费,在默认情况下,RabbitMQ会进行消息轮询发送给每一个消费者,因此每个消费者处理的消息数量是一致的。下面直接看我们的主要文件代码一、pom文件我们只需要引入RabbitMQ的依赖包即可<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x...原创 2020-06-04 17:59:41 · 321 阅读 · 0 评论 -
RabbitMQ(三) HelloWorld 单生产者单消费者示例实现
一、创建Maven工程,引入RabbitMQ依赖。pom.xml 如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/原创 2020-06-03 18:31:36 · 478 阅读 · 0 评论 -
RabbitMq(二) Connection、Channels、Exchanges、Queues 等基本概念介绍
一、Connection 、Channel、Queue等之间关系 在Mq中connection以及Channel Exchange Queue 是什么样的关系,我们可以从下图可以可以进行了解,图片来自黑马公开课视频。我们不管作为消息的生产者(Producer)或者消费者(Consumer)都是作为客户端(Client)连接到MQ服务器(Blocker Node)上。在生产者和消费者与RabbitMQ-Server 之间都是通过Connection进行连接。在Connection中存在Chan...原创 2020-06-03 16:42:17 · 9088 阅读 · 2 评论 -
RabbitMQ (一) MQ介绍以Linux下RabbitMq环境安装
1,MQ 相关介绍1.1 什么是MQMQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构1.2、MQ主要解决的问题任务异步处理 应用程序的解耦合 削峰填谷1.3、Mq的主要协议以及常见的消息队列AMQP (高级消息队列协议) ,跨语言。 JMS (Java 消息服务),仅Java平台。常见的消息队列框架1,ActiveMQ (Jms) 2,Zero原创 2020-06-02 00:17:00 · 590 阅读 · 0 评论