RabbitMQ
文章平均质量分 67
RabbitMQ
?abc!
努力学习,天天向上
展开
-
RabbitMQ(17)应用问题:消息补偿、幂等性保障
消息可靠性保障(消息补偿)通过定时检查服务去继承2和3步是否正常2和3步发送的消息是一样的执行到第8步的时候,延迟发送的消息会再去数据库中对比,确认之前发送的消息是否正确消息幂等性保障幂等性指一次和多次请求某一个资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。在MQ中指,消费多条相同的消息,得到与消费该消息一次相同的结果。乐观锁机制...原创 2022-01-26 08:35:01 · 195 阅读 · 0 评论 -
RabbitMQ(16)RabbitMQ高级特性:日志与监控、消息追踪
日志与监控RabbitMQ默认日志松放路径: /arlog/rabitmq/rabbit@xxx.log日志包含了RabbitMQ的版本号、Erlang的版本号、 RabbitMQ服务 节点名称、cookie的hash值、RabbitMQ配置文件地址、内存限制、磁盘限制、默认账户guest的创建以及权限配置等等。通过Web管控台的图形化界面查看:想要查看的更加详细就点进去查看通过命令去查看:rabbitmqctl管理和监控消息追踪在RabbitMQ中可以使用Firehose和rab原创 2022-01-26 08:34:34 · 506 阅读 · 0 评论 -
RabbitMQ(15)RabbitMQ高级特性:延迟队列
概述延迟队列,即消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。需求:下单后,30分钟未支付,取消订单,回滚库存。新用户注册成功7天后,发送短信问候。实现方式:定时器延迟队列在RabbitMQ中并未提供延迟队列功能,但是可以使用:TTL+死信队列组合实现延迟队列的效果。代码实现修改配置文件:spring-rabbitmq-producer.xml<!-- 延迟队列: 1. 定义正常交换机(order_exchan原创 2022-01-26 08:34:18 · 298 阅读 · 0 评论 -
RabbitMQ(14)RabbitMQ高级特性:死信队列
概述死信队列,英文缩写: DLX。Dead Letter Exchange (死信交换机), 当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。如下图所示:消息成为死信的三种情况1.队列消息长度到达限制;比如说,给一个队列,设置了他最大能存储10个消息,当11条消息进来时,已经存储不下了,这条消息就会称为死信队列2.消费者拒接消费消息,basicNack/basicReject,并且不把消息重 新放入原目标队列,requeue=false;不签收消原创 2022-01-26 08:34:03 · 141 阅读 · 0 评论 -
RabbitMQ(13)RabbitMQ高级特性:TTL
TTL全称Time To Live (存活时间/过期时间)。当消息到达存活时间后,还没有被消费,会被自动清除。.RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间。控制台实现代码实现修改配置文件spring-rabbitmq-producer.xml<!--ttl--> <rabbit:queue name="test_queue_ttl" id="test_queue_ttl"> <!--设置queue的原创 2022-01-25 08:22:48 · 348 阅读 · 0 评论 -
RabbitMQ(12)RabbitMQ高级特性:消费端限流
修改配置文件spring-rabbitmq-consumer.xml<!--定义监听器容器,加载这些监听类--> <rabbit:listener-container connection-factory="connectionFactory" acknowledge="manual" prefetch="1" > <rabbit:listener ref="QosListener" queue-names="test_queue_confirm"&g原创 2022-01-25 08:22:28 · 204 阅读 · 0 评论 -
RabbitMQ(11)RabbitMQ高级特性:Cosumer Ack
概述ack指Acknowledge,确认。表示消费端收到消息后的确认方式。有三种确认方式:自动确认: acknowledge= “none”手动确认: acknowledge= “manual”根据异常情况确认: acknowledge= “auto”,(这种方式使用麻烦,并且不常用)自动确认是指,当消息一旦被Consumer接收到,则自动确认收到,并将相应message从RabbitMQ的消息缓存中移除。但是在实际业务处理中,很可能消息接收到,业务处理出现异常,那么该消息就会丢失。如果设原创 2022-01-25 08:22:14 · 108 阅读 · 0 评论 -
RabbitMQ(10)RabbitMQ高级特性:消息可靠投递
消息可靠投递在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退回模式rabbitmq整个消息投递的路径为:produer—> rabbitmq broker—> exchange—> queue—> consumer消息从producer到exchange则会返回一个confirmCallback。消息从exch原创 2022-01-25 08:22:00 · 228 阅读 · 0 评论 -
RabbitMQ(9)SpringBoot整合RabbitMQ
生产者1.创建生产者SpringBoot工程2.引入依赖坐标<!-- 1. 父工程依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.REL原创 2022-01-25 08:21:37 · 180 阅读 · 0 评论 -
RabbitMQ(8)Spring整合RabbitMQ
生产者①创建生产者工程②添加依赖<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.7.RELEASE</version>原创 2022-01-25 08:21:22 · 116 阅读 · 0 评论 -
RabbitMQ(7)工作模式:Route、Topic
Route路由模式模式说明1.队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey (路由key)2.消息的发送方在向Exchange发送消息时,也必须指定消息的RoutingKey3.Exchange不再把消息交给每一个绑定的队列, 而是根据消息的Routing Key进行判断,只有队列的Routingkey与消息的Routing key完全一致, 才会接收到消息图解:P:生产者,向Exchange发送消息,发送消息时,会指定-个routing keyX: Excha原创 2022-01-25 08:21:04 · 863 阅读 · 0 评论 -
RabbitMQ(6)工作模式:WorkQueue、Pub/Sub
WorkQueue工作队列模式模式说明*Work Queues:与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。应用场景:对于任务过重或任务较多情况使用工作队列可以提高任务处理的速度。代码生产者(Producer_WorkQueues)package com.yy.producer;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.原创 2022-01-25 08:20:45 · 227 阅读 · 0 评论 -
RabbitMQ(5)RabbitMQ使用入门代码
使用简单模式完成消息传递在上图的模型中,有以下概念: .P:生产者,也就是要发送消息的程序C:消费者:消息的接收者,会-直等待消息到来queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息1 创建工程(生成者、消费者)2 分别添加依赖两个工程创建完之后,分别在pom文件中导入下面的坐标<dependencies> <!--rabbitmq java 客户端--> <dep原创 2022-01-24 10:41:45 · 243 阅读 · 0 评论 -
RabbitMQ(4)RabbitMQ管控台的使用
计入界面信息添加用户角色说明:超级管理员(administrator)可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。监控者(monitoring)可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)策略制定者(policymaker)可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。普通管理者(management)仅可登陆管理控制台,无法看到节原创 2022-01-24 10:41:35 · 5147 阅读 · 2 评论 -
RabbitMQ(3)RabbitMQ的安装与配置
RabbitMQ官方地址: http://www.rabbitmq.com/安装1 安装依赖环境yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz2 下载/上传文件到centos中下载下面的三个文件erlang-18.3-1.el7.centos.x86_64.rpmsocat-1.原创 2022-01-24 10:41:23 · 498 阅读 · 0 评论 -
RabbitMQ(2)RabbitMQ概述
常见的MQ产品目前业界有很多的MQ产品,例如RabbitMQ、RocketMQ、 ActiveMQ、Kafka、 ZeroMQ、 MetaMq等,也有直接使用Redis充当消息队列的案例,而这些消息队列产品,各有侧重,在实际选型时,需要结合自身需求及MQ产品特征,综合考虑。对比RabbitMQ综合能力比较强RabbitMQ概述AMQP协议AMQP,即Advanced Message Queuing Protocol (高级消息队列协议),是一 个网络协议,是应用层协议的一个开放标准,为面向消息原创 2022-01-11 19:33:30 · 321 阅读 · 0 评论 -
RabbitMQ(1)MQ概述
MQ基本概念MQ全称Message Queue (消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。分布式系统中有那种通信方式例如:在一个大系统中,有两个子系统(A系统和B系统),二者职责不一样,做的事也不一样,组合起来就是一个大系统通过远程调用借助第三方完成通信(间接通信):MQ就属于这种(A系统生产消息加做生产者,B系统接收消息叫做消费者,MQ称为中间件)MQ:消息队列,存储消息的中间件分布式系统通信两种方式:直接远程调用和借助第三仿完成间接通信发原创 2021-12-23 14:51:20 · 301 阅读 · 0 评论