随笔分类 - RabbitMQ
Native RabbitMQ Backup Exchange
摘要:备用交换器,在消息无法路由的时候可以使用失败者通知,还可以使用备用交换器来路由消息。如果备用交换器和mandatory一起开启,那么不会有失败者通知了,因为消息还是可以路由的。 生产者 /** * @author zhangjianbing * @since 2020/9/7 */ @Suppres
Native RabbitMQ ProducerComfirm
摘要:发布者确认模式 注意,这里需要开启确认模式:channel.confirmSelect() /** * 发布者确认回调 * handleAck:消息经由交换器,路由键,成功到达了队列,会调用此方法 * handleNack:消息经由交换器,路由键在到达队列的途中,MQ内部出现异常会调用此方法 * *
Native RabbitMQ mandatory
摘要:mandatory为true表示开启失败通知机制,在交换器无法将消息路由到队列的时候会发生失败通知回调,如果声明了备用交换器以后,失败通知回调机制则会失效,是因为消息由备用交换器路由到了其它队列。 生产者 注意:这里第三个参数需要设置为true,channel.basicPublish /** *
Native RabbitMQ DLX
摘要:在消息过期、超过队列最大长度、被拒绝后,如果不重新入队,那可以选择进入死信队列(dead letter),通常死信队列配合消息过期策略可以应用在延时订单的业务场景下。 以下场景为:两个正常消费者A和B,一个拒绝消息的消费者C,和一个监听死信消息的消费者。 正常消费者A /** * 普通消费者A *
Native RabbitMQ RejectMessage
摘要:消费者在消费消息的时候,可以根据业务场景来选择拒绝消息,通过参数设置是否让消息再次入队。拒绝消息的指令有俩,一个是basicNack,一个是basicReject,这两个区别是后者不能批量拒绝,只能单条拒绝。代码演示如下: 一个生产者,两个正常消费者,一个拒绝消息的消费者,三个消费者共同订阅一个队列
Native RabbitMQ Topic Exchange
摘要:RabbitMQ原生编程,Topic交换器。适用于平台给下游服务下发消息的业务场景,配合每个下游服务都有自己的vhost,实现消息隔离发送。 生产者: /** * create by zhangjianbing * time 2020年9月1日 */ public class TopicProduc
Native RabbitMQ Fanout Exchange
摘要:RabbitMQ原生编程 ,Fanout广播交换器。广播交换器发送消息到队列,跟路由键没什么关系了,只要绑定到广播交换器的队列都会受到它发来的消息。 生产者: /** * @author zhangjianbing * time 2020/9/3 */ @SuppressWarnings("Dupl
Native RabbitMQ Direct Exchange
摘要:RabbitMQ原生编程,直接交换器。 生产者: /** * 原始生产者: * 1. 创建连接工厂 * 2. 创建连接 * 3. 创建信道 * 4. 在连接中声明交换器的【名字】以及【类型】 * 5. 创建队列 * 6. 声明路由键的名字 * 7. 将队列和交换器通过路由键绑定,目的是让交换器通过路
RabbitMQ系列文章导读
摘要:RabbitMQ版本 原生编程 引入jar包 <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.0.0</version> </dependency> Spring