
学习消息中间件
文章平均质量分 81
学习开源消息中间件的一些笔记
流放深圳
让天下没有难写的代码
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot整合消息中间件 RabbitMQ 第 10 篇 —— RabbitMQ 解决分布式事务(完结)
什么是分布式事务?在微服务环境下,因为会根据不同的业务会拆分成不同的服务,比如会员服务、订单服务、商品服务等,每个服务都有自己独立的数据库,并且是独立运行,互不影响。在多数据源的情况下,两个服务相互通讯的时候,就会出现数据不一致的问题,从而出现分布式事务产生的原因。举例:某电商平台,用户先下单后,扣库存失败,那么将会导致超卖;如果下单不成功,扣库存成功,那么会导致少卖。解决分布式事务基本思路先了解一些概念:ACID原理、CAP、Base理论、柔性事务与刚性事务、理解最终一致性思想...原创 2021-04-13 23:55:59 · 1167 阅读 · 6 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 9 篇 —— 死信队列
死信队列我们先考虑以下场景:1、RabbitMQ 服务器将消息推送给消费者时,无法得到消费者手动应答,或者是被消费者拒绝消费(basic.reject 或 basic.nack),使用补偿机制后仍然未能被消费,这种情况下 RabbitMQ 为了保证消息不被删除和丢失,应该怎么办?2、RabbitMQ 设置消息的过期时间 TTL,当消息到达过期时间后,RabbitMQ 为了保证消息不被删除和丢失,应该怎么办?(比如一些限时活动的公告)3、高并发下 RabbitMQ 的消息队列已满,无...原创 2021-04-11 15:11:11 · 346 阅读 · 0 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 8 篇 —— 补偿机制(重试机制)、解决幂等性问题、手动确认消息
补偿机制(重试机制)RabbitMQ 队列服务器,对消息默认有个补偿机制。即当消费者没有成功消费消息时,会缓存消息,并且不断的把消息重新发给消费者,直到消息被消费掉(默认情况下会一直发,除非我们修改配置)。RabbitMQ 底层是使用 Spring AOP 进行拦截,如果消费者的@RabbitListener 函数报错,会自动触发重试机制。我们来演示一下。我们使用之前的项目进行测试。代码在百度网盘连接:https://pan.baidu.com/s/1Izb0WbsuLCJJXlm445...原创 2021-04-11 11:07:18 · 1719 阅读 · 3 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 7 篇 —— Topic 主题模式(通配符模式)
说明:此模式实在路由key模式的基础上,使用了通配符来管理消费者接收消息。生产者P发送消息到交换机X,type=topic,交换机根据绑定队列的routing key的值进行通配符匹配。*(星号)可以代替一个单词,如:【info.*】只能匹配如 【info.email】或者【info.sms】#(哈希)可以代替零个或多个单词。如:【info.#】可以匹配【info.email.user】或者【info.email.user.register】OK,直接上代码。代码结构图:...原创 2021-04-07 00:24:27 · 583 阅读 · 0 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 6 篇 —— Routing 路由模式(重点掌握)
生产者发送消息到交换机并指定一个路由key,消费者队列绑定到交换机时要指定路由key(key匹配就能接受消息,key不匹配就不能接受消息)比如我们把用户注册的信息通过短信验证码发给用户,只把 key 为 register 的发到 SMS 队列,如果系统报错了,就把错误信息发给邮件队列,方便开发者及时收到消息。这样就很好的控制了不同的队列接收不同的消息了。整体代码结构如下:bootstrap.yml 配置如下:spring: rabbitmq: #主机名 ...原创 2021-04-07 00:24:14 · 390 阅读 · 1 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 5 篇 —— Publish/Subscribe 发布订阅模式(重点掌握,可模拟发邮件)
这个可能是消息队列中最重要的队列了,其他的都是在它的基础上进行了扩展。RabbitMQ消息传递模型的核心思想是生产者从不将任何消息直接发送到队列。实际上,生产者通常甚至根本不知道是否将消息传递到任何队列。相反,生产者只能将消息发送到交换机。交换机一方面它接收来自生产者的消息,另一方面,将消息推入队列。交换机必须确切知道如何处理收到的消息。是否应将其附加到特定队列?是否应该将其附加到许多队列中?还是应该将其丢弃。规则由交换类型定义。有几种交换类型可用:Direct exchange(直连...原创 2021-04-07 00:23:59 · 666 阅读 · 1 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 4 篇 —— RabbitMQ WorkQueue 工作队列模式
工作队列(又称任务队列)的主要思想是将消息均摊的分配给每个消费者。原创 2021-04-07 00:23:43 · 412 阅读 · 1 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 3 篇 —— RabbitMQ 点对点模式(动态创建队列名)
RabbitMQ 官网学习地址:https://www.rabbitmq.com/getstarted.html点对点模式一个生产者投递消息给队列,只允许有一个消费者进行消费。如果消费者有多个(一个集群),则默认会进行轮询的均摊消费。这里的消费者,是指某一台服务器,而不是某个用户。消费者应答的方式有2种:自动应答和手动应答。自动应答:消费者不管对消息处理是否成功,都会通知队列服务器去删除这条消息。如果消息处理失败,会自动补偿。手动应答:消费者处理完消息,会返回通知(ACK)告诉...原创 2021-04-07 00:23:06 · 905 阅读 · 1 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 2 篇 —— 简单了解 RabbitMQ 管理后台以及一些概念
我们先看 RabbitMQ 的管理后台页面也可以使用浏览器的翻译功能,如图(机器翻译比较生硬,但大致意思可以看懂):OK,我们创建一个用户。如图:这时候的用户列表就多了 test123 的管理员角色了。如图:我们先了解虚拟主机(virtual hosts)的概念:RabbitMQ 可以设置虚拟消息服务器 virtual hosts,每个虚拟主机相当于一个独立的 RabbitMQ 服务器,相互隔离,它们之间的 Connections、Channels、Excha...原创 2021-04-07 00:22:45 · 314 阅读 · 0 评论 -
SpringBoot整合消息中间件 RabbitMQ 第 1 篇 —— RabbitMQ 在 Windows 下安装(包含Erlang安装)
RabbitMQ是一个由 Erlang 语言开发的开源消息队列系统(所以必须在 Erlang 环境才可以运行)。基于AMQP协议(Advanced Message Queuing Protocol)来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、 安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,其次是对性能和吞吐量的要求。引用消息队列的有点在于:解耦、异步、削峰。缺点是系统复杂性高,会产生数据不一致的问题。几种消息消...原创 2021-04-07 00:22:17 · 300 阅读 · 1 评论 -
SpringBoot整合消息中间件ActiveMQ第 4 篇 —— ActiveMQ 整合Eamil 实现异步发送邮件信息(完结)
首先,我们需要确定我们的邮箱开启了【POP3/SMTP】服务。如何设置呢?我们登录QQ邮箱:https://mail.qq.com/点击顶部的【设置】,找到第二个【账户】,然后往下面拉。找到【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务】,默认都是关闭的。我们点击【开启】,提示需要密保。然后点击【申请密保】这里演示的是网易163 邮箱:https://mail.163.com/开启 POP3/SMTP 安全要...原创 2021-03-26 23:41:18 · 785 阅读 · 1 评论 -
SpringBoot整合消息中间件ActiveMQ第 3 篇 —— ActiveMQ 发布订阅(Topics)模式
这一篇博客,来学习 ActiveMQ 的发布订阅模式 Topics。做法跟点对点模式一样。不过需要在配置文件显示的原创 2021-03-25 23:20:34 · 554 阅读 · 0 评论 -
SpringBoot整合消息中间件ActiveMQ第 2 篇 —— ActiveMQ 点对点(P2P)模式
呜呜原创 2021-03-25 23:20:09 · 332 阅读 · 0 评论 -
SpringBoot整合消息中间件ActiveMQ第 1 篇 —— ActiveMQ 安装
时间不知不觉来到了2021年3月17日,除了工作照常的忙碌之外,也想想后面的职业规划。如何成为架构师?这个问题在越来越多的毕业生出来工作之后,才开始慢慢反思。消息中间件的相关理论可以查看百度:消息中间件-百度百科一、Windows 下安装 ActiveMQ先到ActiveMQ官网下载相关文件:http://activemq.apache.org/components/classic/download/我们为了方便学习,下载 Windows 最新版,它里面有32、64位系统对应的启动文件...原创 2021-03-25 23:19:31 · 176 阅读 · 0 评论