RabbitMq
sym_TQ
不论做什么事,都要相信自己,别让别人的一句话将你击倒!!
展开
-
RabbitMq | 解决分布式事务(最终一致性原理)
rabbitMQ解决分布式事务原理: 采用最终一致性原理。需要保证以下三要素1、确认生产者一定要将数据投递到MQ服务器中(采用MQ消息确认机制)2、MQ消费者消息能够正确消费消息,采用手动ACK模式(注意重试幂等性问题)3、如何保证第一个事务先执行,采用补偿机制,在创建一个补单消费者进行监听,如果订单没有创建成功,进行补单。外卖点餐项目中,订单服务中产生订单,生成订单号。此时需要调用...原创 2020-03-19 16:10:17 · 3152 阅读 · 0 评论 -
RabbitMq | 死信队列
在定义业务队列的时候,可以考虑指定一个死信交换机,并绑定一个死信队列,当消息变成死信时,该消息就会被发送到该死信队列上,这样就方便我们查看消息失败的原因了创建配置文件,建造交换机和短信以及邮件队列package com.sun.springboot.config;import java.util.HashMap;import java.util.Map;import org.spr...原创 2020-03-19 14:30:11 · 230 阅读 · 0 评论 -
RabbitMQ| 解决消息幂等性问题
消费者出现业务逻辑问题,自动补偿机制 场景演示:/** * @author 孙一鸣 on 2020/3/15 */@Service@RabbitListener(bindings = @QueueBinding( value = @Queue(value = "sym"), exchange = @Exchange(value = "exchange....原创 2020-03-19 11:53:19 · 1115 阅读 · 0 评论 -
RabbitMq |事务处理机制
生产者发送消息出去之后,不知道到底有没有发送到RabbitMQ服务器, 默认是不知道的。而且有的时候我们在发送消息之后,后面的逻辑出问题了,我们不想要发送之前的消息了,需要撤回该怎么做。解决方案:1.AMQP 事务机制2.Confirm 模式AMQP 事务机制事务模式:txSelect 将当前channel设置为transaction模式txCommit 提交当前事务txRol...原创 2020-03-19 10:11:45 · 954 阅读 · 0 评论 -
RabbitMq | 工作对列(公平形对列)
均摊消费弊端:消费者1处理业务时间1s,消费者2处理业务时间0.5s时间,如果每个消费处理消息的业务时间不相同,对消费者处理慢的不公平工作对列称为能者多劳公平队列原理:队列服务器向消费者发送消息的时候,消费者采用手动应答模式,队列服务器必须要收到消费者发送ack结果通知,才会继续发送一下一个消息。...原创 2020-03-18 21:47:01 · 153 阅读 · 0 评论 -
RabbitMq | spring实现点对点队列(简单队列)
点对点模式:一对一模式 一个生产者投递消息给队列,只能允许有一个消费者进行消费。注意:如果消费集群的话,会进行均摊消费。配置类:public class MQConnectionUtils { // 创建新的MQ连接 public static Connection newConnection() throws IOException, TimeoutException { /...原创 2020-03-18 21:05:35 · 279 阅读 · 0 评论 -
RqbbitMq | 消息持久化处理以及消息确认ACK机制
autoDelete 属性@Queue: 当所有消费客户端连接断开后,是否自动删除队列 true:删除 false:不删除@Exchange:当所有绑定队列都不在使用时,是否自动删除交换器 true:删除 false:不删除什么是消息确认ACK?如果在处理消息的过程中,消费者的服务器在处理消息时出现异常,那可能这条正在处理的消息就没有完成消息消费,数据就会丢失。为了确保数据不会丢失,...原创 2020-03-18 13:29:40 · 660 阅读 · 0 评论 -
RabbitMQ | springboot整合Fanout 交换器(广播)
消费者配置文件:spring.application.name=springcloud-mqspring.rabbitmq.host=192.168.70.131spring.rabbitmq.port=5672spring.rabbitmq.username=oldluspring.rabbitmq.password=123456#设置交换器的名称mq.config.exchang...原创 2020-03-17 23:39:41 · 281 阅读 · 0 评论 -
RabbitMq | springboot 整合Topic 交换器交换器(主题,规则匹配)
引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>消息发送者:配置文件:spring.appli...原创 2020-03-17 23:35:05 · 202 阅读 · 0 评论 -
RabbitMq | springboot (路由模式RoutingKey)整合Direct交换器
引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>消费者:配置文件:spring.applicat...原创 2020-03-17 23:23:41 · 2798 阅读 · 0 评论 -
RabbitMq | 介绍
开发环境:RabbitMQ是采用erlang语言开发的,所以必须有erlang环境才可以运行大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力消息服务中两个重要概念:消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。消息队列主要有两种形式的目的地队列(queue):点...原创 2020-03-17 22:41:03 · 500 阅读 · 0 评论