中间件/RocketMQ
Anbang713
这个作者很懒,什么都没留下…
展开
-
RocketMQ:死信队列和消费幂等
1. 死信队列上一篇《RocketMQ:消息重试》中我们提到当一条消息消费失败时,RocketMQ会进行一定次数的重试。重试的结果也很简单,无非就是在第N次重试时,被成功消费。或者就是经过M次重试后,仍然没有被消息。这通常是由于消费者在正常情况下无法正确地消费该消息。此时,RocketMQ不会立即将消息丢弃,而是将其发送到该消费者对应的特殊队列中去。在RocketMQ中,这种正常情况下无法被消费的消息被称为死信消息(Dead-Letter Message),存储死信消息的特殊队列称为死信队列(Dead-原创 2020-07-07 21:12:01 · 2043 阅读 · 0 评论 -
RocketMQ:消息重试
消息的发送和消费并不是百分百成功的,在出现消息推送失败时,RocketMQ有何补偿方式来进行消息重试呢?这是我们今天要一起学习的点。1. 顺序消息的重试对于顺序消息,当消费者消费消息失败后,消息队列 RocketMQ 会自动不断进行消息重试(每次间隔时间为 1 秒),这时,应用会出现消息消费被阻塞的情况。因此,在使用顺序消息时,务必保证应用能够及时监控并处理消费失败的情况,避免阻塞现象的发生。2. 无序消息的重试对于无序消息(普通、定时、延时、事务消息),当消费者消费消息失败时,您可以通过设置返回状原创 2020-07-05 09:57:55 · 1372 阅读 · 0 评论 -
RocketMQ:高可用机制
RocketMQ分布式集群是通过Broker节点的Master和Slave配合达到高可用性的。Master和Slave的区别:在Broker的配置文件中,参数 brokerId的值为0表明这个Broker是Master,大于0表明这个Broker是 Slave,同时brokerRole参数也会说明这个Broker是Master还是Slave。Master角色的Broker支持读和写,Slave角色的Broker仅支持读,也就是Producer只能和Master角色的Broker连接写入消息;Consu.原创 2020-07-04 10:18:29 · 546 阅读 · 0 评论 -
RocketMQ:消息存储
通常来说我们对分布式队列有高可靠性的要求,所以数据要进行持久化存储。消息生产者发送消息到MQ。MQ收到消息,将消息进行持久化,即在存储系统中新增一条记录。返回ACK确认消息给生产者。然后MQ推送消息给对应的消费者,等待消费者返回ACK。如果消息消费者在指定时间内成功返回ACK,那么MQ认为消息消费成功,在存储系统中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新推送消息,重复执行4、5、6步骤。1. 存储介质关系型数据库DB存储系统可选用J原创 2020-07-03 21:18:40 · 415 阅读 · 0 评论 -
RocketMQ:消息发送与消费
在此之前,我们已经介绍过《RocketMQ:快速入门》和《RocketMQ:搭建集群》。现在我们已经准备好RocketMQ的环境了,接下来就是通过实战去演示RocketMQ中各种消息类型的生产和消费了。1. 开发环境(1)引入RocketMQ客户端依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId&原创 2020-07-02 21:04:03 · 2144 阅读 · 0 评论 -
RocketMQ:搭建集群
在上一篇《RocketMQ:快速入门》之后,今天说一说如何搭建RocketMQ集群。首先看一下集群架构图:1. 集群特点NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的BrokerName。不同的BrokerId来定义,BrokerId为0表示Master,非0表示Sla原创 2020-06-30 20:49:16 · 5833 阅读 · 0 评论 -
RocketMQ:快速入门
RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发。在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。今天我们将安装RocketMQ,并简单的使用入门案例体会一下RocketMQ。1. 准备工作1.1 下载RocketMQ毋庸置疑的,首先我们要下载RocketMQ,RocketMQ当前最新版本:4.7.0,本次我们使用的是4.4.0这个版本。官网地址:http://rocketmq.apache.org/1.2 环境要求Linux原创 2020-06-28 20:47:24 · 1208 阅读 · 0 评论 -
RocketMQ:消息中间件简介
1. 什么是消息中间件(1)什么是消息?消息是指:在应用程序之间传递的数据。消息可以非常简单,比如只包含文本字符串、JSON等;但也可以很复杂,比如一个对象。(2)什么是消息中间件?消息中间件是指:利用高效可靠的消息传递机制进行与平台无关的数据(我们说消息就是数据,所以这里也就是消息)交流,并基于数据通信来进行分布式系统的集成。2. 消息中间件的优缺点2.1 优点(1)应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子原创 2020-06-27 09:44:35 · 939 阅读 · 0 评论