RabbitMQ
文章平均质量分 78
记录RabbitMQ学习笔记
KAI丶
请不要相信,胜利就像山坡上的蒲公英一样唾手可得,
但是请相信,世上总有一些美好值得我们全力以赴,哪怕粉身碎骨!
展开
-
【RabbitMQ Learning Journey】分布式事务解决方案思想
(MQ解决分布式事务,内容来源于蚂蚁课堂)案例: 点外卖案例。 用户下单后,调用订单服务,然后订单服务调用派单服务通知外卖人员送单, 这时候订单系统与派单系统采用MQ异步通讯。消费者端RabbitMQ分布式事务解决方案,最终一致性思想。(可以暂时不一致,但是最终要一致)需要保证以下三要素1、确认生产者一定要将数据投递到MQ服务器中(采用MQ消息确认机制)2、MQ消费者消息能够正...原创 2020-02-29 05:34:05 · 525 阅读 · 0 评论 -
【RabbitMQ Learning Journey】死信队列
(rabbitmq学习内容来源于蚂蚁课堂)死信队列 听上去像 消息“死”了 ,其实也有点这个意思,死信队列 是 当消息在一个队列 因为下列原因:1.消息被拒绝(basic.reject或basic.nack)并且requeue=false.2.消息TTL过期3.队列达到最大长度(队列满了,无法再添加数据到mq中)应用场景分析在定义业务队列的时候,可以考虑指定一个死信...原创 2020-02-29 01:12:19 · 156 阅读 · 0 评论 -
【RabbitMQ Learning Journey】解决消息幂等性问题,防止重复消费
(内容来源于蚂蚁课堂)解决消息幂等性问题,防止重复消费原创 2020-02-28 23:46:38 · 225 阅读 · 0 评论 -
【RabbitMQ Learning Journey】自动重试机制
本文接上篇文章SpringBoot整合RabbitMQ之消费者:1.RabbitMQ默认情况下,如果消费者程序出现异常的情况下,会自动实现补偿机制补偿(重试机制)队列服务器发送补偿请求。2.如果消费者程序业务逻辑出现异常,消息会消费成功吗?不会!@RabbitListener底层使用AOP进行拦截,如果程序没有抛出异常,自动提交事务。如果AOP使用异常通知拦截,获取异常信息...原创 2020-02-28 18:43:08 · 313 阅读 · 0 评论 -
【RabbitMQ Learning Journey】SpringBoot整合RabbitMQ发布订阅,简单实现
springboot实现MQ发布订阅模式.(内容来源于蚂蚁课堂)实现代码:1.引入amqp依赖,springboot版本是2.0.1.RELEASE<!-- 添加springboot对amqp的支持 --><dependency> <groupId>org.springframework.boot</groupId> ...原创 2020-02-27 04:49:56 · 535 阅读 · 0 评论 -
【RabbitMQ Learning Journey】生产者消息确认机制,amqp事务
(内容来源于蚂蚁课堂)1.消费者如何确保消息一定被消费成功? 通过手动应答(默认自动应答)2.RabbitMQ服务器宕机了,消息会丢失吗? 默认会丢失,需要设置持久化 durable=true;3.如何确保生产者一定会投递到MQ服务上?生产者发送消息出去之后,不知道到底有没有发送到RabbitMQ服务器, 默认是不知道的。而且有的时候我们在发送消息之后,后 ...原创 2020-02-27 01:22:56 · 130 阅读 · 0 评论 -
【RabbitMQ Learning Journey】Topics主题模式(通配符)
(内容来源于蚂蚁课堂)topic模式实在路由key模式的基础上,使用了通配符来管理消费者接收消息。生产者P发送消息到交换机X,type=topic,交换机根据绑定队列的routing key的值进行通配符匹配;符号#:匹配一个或者多个词lazy.# 可以匹配lazy.irs或者lazy.irs.cor符号*:只能匹配一个词lazy.* 可以匹配lazy.irs或者lazy.corT...原创 2020-02-26 20:24:52 · 244 阅读 · 0 评论 -
【RabbitMQ Learning Journey】路由模式RoutingKey
RabbitMQ学习资源来源于(蚂蚁课堂)生产者发送消息到交换机并指定一个路由key,消费者队列绑定到交换机时要制定路由key(key匹配就能接受消息,key不匹配就不能接受消息)例如:我们可以把路由key设置为insert ,那么消费者队列key指定包含insert才可以接收消息,消费者队列key定义为update或者delete就不能接收消息。很好的控制了更新,插入和删除的操作。采...原创 2020-02-26 19:18:44 · 277 阅读 · 0 评论 -
【RabbitMQ Learning Journey】高级队列 发布订阅模式(fanout)
RabbitMQ学习资源来源于(蚂蚁课堂)RabbitMQ高级队列(发布订阅)生产者先投递消息给交换机,交换机根据路由策略RoutingKey 转发不同的队列服务器中存放。队列服务器再以推送或者拉起形式给消费者进行消费。这个可能是消息队列中最重要的队列了,其他的都是在它的基础上进行了扩展。功能实现:一个生产者发送消息,多个消费者获取消息(同样的消息),包括一个生产者,一个交换机,多...原创 2020-02-26 18:52:44 · 165 阅读 · 0 评论 -
【RabbitMQ Learning Journey】工作(公平性)队列
RabbitMQ学习资源来源于(蚂蚁课堂)(点对点简单队列(消费者是集群会进行均摊消费,你一个我一个。均摊消费存在弊端,比如对性能差的服务不友好);工作(公平性、)队列:能者多劳)工作队列-生产者:package com.google.util.workQueue;import com.google.util.MQConnectionUtils;import com.r...原创 2020-02-26 16:05:50 · 327 阅读 · 0 评论 -
【RabbitMQ Learning Journey】点对点(简单)队列
RabbitMQ学习资源来源于(蚂蚁课堂)一.MQ连接工具类package com.google.util;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import java.io.IO...原创 2020-02-26 14:18:58 · 147 阅读 · 0 评论 -
【RabbitMQ Learning Journey】RabbitMQ安装与启动
RabbitMQ原创 2020-02-26 13:03:14 · 356 阅读 · 0 评论