RabbitMQ
文章平均质量分 80
小兔子,白又白。
samarua
while "live" : print("Loli")
展开
-
【RabbitMQ】集群搭建(镜像队列+负载均衡)
图解集群一个好消息是,RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持集群。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样借助ZooKeeper实现集群搭建。先简单说两个问题,后面会详细介绍:❶ 如何实现各个节点上的队列消息的同步?我们只需在搭建好集群后,添加一个镜像队列的策略即可。❷ 如何实现多个节点的透明代理?如何实现各个节原创 2021-05-12 18:35:24 · 1121 阅读 · 0 评论 -
【RabbitMQ】消息的可靠性保障和幂等性保障
可靠性保障——消息补偿机制如何保障消息的可靠性?如何保证消息不回丢失?如何保证生产者发送的消息消费者一定能够正常消费掉?这都是一个问题。之前的文章中已经介绍了几种解决方式:(1)生产者的confirm模式。 包括Producer与Exchange之间的确认模式(ConfirmCallBack),以及Exchange与Queue之间的回退模式(ReturnCallBack)。(2)消费者的ack机制。 包括自动签收(none)、手动签收(manual)、根据异常情况签收(auto)。(3)消息原创 2021-05-11 21:20:17 · 200 阅读 · 0 评论 -
【RabbitMQ】消息追踪
为什么需要消息追踪?使用MQ时经常会有这样的场景:生产者成功发送消息,消费者却找不到消息!?为什么会出现这种消息异常丢失的情况呢?有可能是编码导致的逻辑错误,比如交换机与队列的绑定问题、交换机的转发策略问题;也有可能是不可避免的网络连接问题、集群分布问题…这时便需要一个跟踪消息的机制,来帮我们定位到消息失踪的原因。在RabbitMQ中,可以使用 Firehose 和 rabbitmq_tracing 插件来进行消息追踪。 Firehose先说一下Firehose的原理。原创 2021-05-07 17:00:15 · 617 阅读 · 3 评论 -
【RabbitMQ】高级特性(消费端限流、过期时间、死信队列、延迟队列)
消费端限流消费端限流是为了防止消息积压后,消费端一次拉取过多的消息而挂掉。我们限制一个数字,其含义是:当所有的消息都被手动确认之后,消费者可以拉取的最大消息数。核心配置:(1)在<rabbit:listener-container>中设置 prefetch="30"(2)消费端的确认模式一定是手动确认,即 acknowledge="manual"<rabbit:listener-container connection-factory="connectionFactory"原创 2021-05-07 16:44:05 · 379 阅读 · 0 评论 -
【RabbitMQ】消息的可靠性投递与签收
消息的可靠性投递——Porducer Confirm确认模式发生在从Producer发送到Exchange时,发送成功/失败都会自动调用ConfirmCallBack回调方法。步骤:(1)开启确认模式(在connectionFactory中设置publisher-confirms=“true”)(2)编写ConfirmCallBack回调方法(rabbitTemplate模板上设置并编写回调方法)回退模式发生在从Exchange路由到Queue时,路由失败才会自动调用ReturnCall原创 2021-05-07 16:39:46 · 254 阅读 · 0 评论 -
【RabbitMQ】SpringBoot整合RabbitMQ
核心思路生产者:引入父工程依赖和相关启动器依赖编写application.yml配置手写配置类(交换机,队列,交换机与队列的绑定关系)(⭐️)注入RabbitTemplate模板对象,并使用它发送消息(⭐️)消费者:引入父工程依赖和相关启动器依赖编写application.yml配置手写监听器(利用@RabbitListener绑定队列)(⭐️) 生产者演示❶ 引入父工程依赖和相关启动器依赖<parent> <groupId>原创 2021-04-23 19:24:47 · 103 阅读 · 0 评论 -
【RabbitMQ】Spring整合RabbitMQ
核心配置文件生产者(Producer)思路:首先用加载进去的资源文件,创建一个connectionFactory连接工厂;创建队列Bean对象(简单模式、工作队列模式直接创建Queue即可;广播模式、路由模式、通配符模式还要新建Exchange并绑定Queue);创建一个rabbitTemplate模板对象(一会儿发消息时要用)。消费者(Consumer)思路:首先用加载进去的资源文件,创建一个connectionFactory连接工厂;创建监听器Bean对象;为每一个监听器Bea原创 2021-04-23 17:48:42 · 112 阅读 · 0 评论 -
【RabbitMQ】入门RabbitMQ一篇就够了!(图解架构,图解工作模式,快速入门Demo)
产品简介2007年,Rabbit技术公司基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)开发的 RabbitMQ1.0 发布。RabbitMQ由 Erlang 语言开发。Erlang尤其以高性能、健壮以及可伸缩性出名,是专门用于高并发和分布式的一种语言。另外,RabbitMQ是开源的。 架构图解这张图解极其重要!!!❶ Broker接收和分发消息的应用,其实Broker就是RabbitMQ Server。❷ Vi原创 2021-04-23 14:55:58 · 775 阅读 · 0 评论 -
【RabbitMQ】一篇文章带你理解消息队列(MQ)及其优势劣势
什么是消息队列?分布式系统通信有两种方式:直接的远程调用、间接的第三方通信。而消息队列(MQ)就是这样一个存储消息的第三方中间件。通俗的理解,MQ的最重要作用就是缓冲消息,你不必直接将消息即时的发给谁,而是将消息发给MQ进行管理,另一方会在合适的时间将消息拿走。 MQ的优势1)应用解耦订单系统将消息发送给库存系统、支付系统、物流系统,所以它们是耦合在一起的。当库存系统出了问题,会导致订单系统出错,进而整个系统就全部瘫痪了。中间件正是解耦的常用手段。改造后的系统中,订单原创 2021-04-23 12:20:30 · 392 阅读 · 0 评论