
RabbitMQ
terrybg
分享Java、微服务、架构、前端、项目管理技术,欢迎一起交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
09.RabbitMQ死信队列
在上篇中主要讲到了RabbitMQ手动响应消息,这篇主要讲到死信队列配置。前面讲到RabbitMQ重试多次配置让他放弃消费,这样会导致消息丢失,除了放弃消费,消息丢失的情况还会有以下这几种:尝试多次拒绝消费消息设置了过期时间消息队列满了保证消息不丢失就需要用死信队列了,简单的讲就是指将消息放到另外一个队列,另外有一个消费者消费。死信交换机配置类@Configurationclass DeadExchangeConfig{ /** * 创建死信队列 */原创 2022-06-09 08:15:38 · 10500 阅读 · 0 评论 -
08.RabbitMQ自动响应和手动响应
在上篇中主要讲到了RabbitMQ处理幂等性,这篇主要讲到手动响应消息配置。RabbitMQ默认采用自动应答消息,方法执行没有异常就会算消息正常消费完成,但是某些业务场景下如报错等需要自己手动应答修改配置文件spring: rabbitmq: listener: simple: retry: # 开启消费者重试机制(默认就是true,false则取消重试机制) enabled: true # manua原创 2022-01-07 16:29:18 · 10948 阅读 · 0 评论 -
07.RabbitMQ处理幂等性
在上篇中主要讲到了RabbitMQ的重试机制和配置,因为重试某些情况需要处理幂等性问题解决幂等性,一般采用以下几种方式,使用全局消息ID(MQ自带,RabbitMQ没有,要自己实现)根据业务ID判断代码中处理方式:@RestController@RequestMapping("/p2p")public class P2PUserCtrl { @Autowired private AmqpTemplate amqpTemplate; @GetMapping原创 2022-01-07 16:28:43 · 11834 阅读 · 0 评论 -
06.RabbitMQ重试机制
RabbitMQ重试机制补偿机制在消费中如果发生异常了,RabbitMQ会使用补偿机制(重试),如果消息没消费成功,会一直重复发送,直到消费成功为止。我们以之前的P2P例子为例:@Component@RabbitListener(queues = "USER")public class P2PUserConsumer { @RabbitHandler public void receive(String msg){ System.out.println("消费者原创 2022-01-07 16:27:51 · 15045 阅读 · 0 评论 -
05.SpringBoot整合RabbitMQ的TOPIC
SpringBoot整合RabbitMQ的TOPICTopic 是direct的增强版,让routing支持使用通配符* 代表可以匹配一个单词,如user.* 能够匹配 user.AAA user.AAABBB# 代表可以匹配0个单词或者多个,如user.# 能够匹配 user.AAA 、user.AAABBB、user.AAABBB.CCC交换机配置@Configurationclass TopicExchangeConfig{ @Bean public Exchan原创 2022-01-07 16:26:55 · 11285 阅读 · 0 评论 -
04.SpringBoot整合RabbitMQ的Routing
SpringBoot整合RabbitMQ的Routing上一章我们用RabbitMQ的Fanout消息订阅模式,能够把消息发给每一个订阅者。这一章在以日志系统为例,定义以下两个队列,通过Routing来实现需求。error队列:接收error消息log队列:接收error消息和info消息交换机配置@Configurationclass ExchangeConfig{ /** * directExchange: 直连交换机 * durable:持久化 *原创 2022-01-07 16:25:07 · 11648 阅读 · 0 评论 -
03.SpringBoot整合RabbitMQ的Fanout(发布订阅模式)
SpringBoot整合RabbitMQ的Fanout(发布订阅模式)RabbitMQ的Fanout(交换器)是消息广播模式,即发送的消息能同时被多个队列消费例如如下使用场景:用户新增了数据,还需要计算积分奖励,这样你就可以创建两个对列,一个用来处理用户信息的请求,另一个对列获取这条消息是来完成积分奖励的任务。本例子是借着上一章的P2P写的,环境搭建可以看上一章的。本文主要介绍生产者和消费者的配置生产者@RestController@RequestMapping("/fanout")publi原创 2022-01-07 16:24:31 · 11504 阅读 · 0 评论 -
02.SpringBoot整合RabbitMQ和P2P例子
SpringBoot整合RabbitMQ和P2P例子SpringBoot 整合rabbitmq很简单,使用amqp即可。p2p即点对点,一条消息被一个队列消费,是消息队列最基本中的模式例如如下场景:聊天程序中的单聊pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20原创 2022-01-07 16:23:11 · 10681 阅读 · 0 评论 -
01.Windows安装RabbitMQ
安装ErlangRabbitMQ是由Erlang编写,所以需要先安装Erlang。安装地址:https://erlang.org/download/windows版本是一个exe文件,直接安装即可。github加速:https://download.fastgit.org/erlang/otp/releases/download/OTP-24.1.5/otp_win64_24.1.5.exe配置环境变量新建一个系统变量ERLANG_HOME,指向Erlang的安装位置在Path中添加%ERL原创 2022-01-07 16:21:59 · 11202 阅读 · 0 评论 -
01.Docker安装RabbitMQ
docker安装RabbitMQ,相对windows来说不需要配置环境变量下载RabbitMQ镜像并启动以下命令会去先下载最新的RabbitMQ镜像,然后启动docker run -d --hostname myrabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq开启管理页插件RabbitMQ自带管理页,默认是关闭的1.查看RabbitMQ进程docker ps2.进入RabbitMQ容器docker exec -it 镜像原创 2022-01-07 16:19:40 · 10585 阅读 · 0 评论