![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RocketMQ
AA-Jessica
这个作者很懒,什么都没留下…
展开
-
【RocketMQ】10.死信队列、消费幂等
死信队列当一条消息初次消费失败,消息队列RocketMQ会自动进行消息重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列RocketMQ不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。在消息队列RocketMQ中,这种正常情况下无法被消费的消息称为死信消息(Dead-Letter Message),存储死信消息的特殊队列称为死信队列(Dead-Letter Queue)。死信特性死信消息具有以下特性不会再被消费者正常消费有效期与正原创 2020-05-17 15:50:53 · 1239 阅读 · 0 评论 -
【RocketMQ】9.负载均衡,消息重试
负载均衡Rroducer负载均衡Producer端,每个实例在发消息的时候,默认会轮询所有的message queue发送,以达到让消息平均落在不同的queue上。而由于queue可以散落在不同的brocker,所以消息会发送到不同的brocker下图中箭头线条上的标号代表顺序,发布方会把第一条消息发送至Queue 0,然后第二条消息发送至Queue1,以此类推。Consumer负载均衡集群模式在集群消费模式下,每条消息只需要投递到订阅这个topic的Consumer Group下的一个实例即原创 2020-05-17 15:16:16 · 396 阅读 · 0 评论 -
【RocketMQ】8.高可用机制——消息消费高可用,消息发送高可用,消息主从复制
高可用机制RocketMQ分布式集群是通过Master和Slave的配合达到高可用性Master和Slave的区别:在Broker的配置文件中,参数brokerId的值为0表明这个Brocker是Master,大于0表明这个Brocker是Slave,同时BrokerRole参数也会说明这个Brocker是Master还是SlaveMaster角色的Brocker支持读和写,Slave角色的Brocker仅支持读,也即是Producer只能和Master角色的Broker连接写入消息;Consumer原创 2020-05-17 13:14:06 · 388 阅读 · 0 评论 -
【RocketMQ】7.消息存储 存储介质、RMQ消息存储和发送、消息存储结构、刷盘机制
消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为i消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4.5.6步骤MQ删除消息存储介质关系型数据库DB文件系统性能对比文件系原创 2020-05-16 23:45:12 · 410 阅读 · 0 评论 -
【RocketMQ】6. 过滤消息,事务消息
一、过滤消息1 .Tag过滤在大多数情况下,TAG是一个简单而有用地设计,其可以来选择需要地消息。例如DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("CID_EXAMPLE");consumer.subscribe("TOPIC", "TAGA || TAGB || TAGC");消费者将接受包含TAGA或TAGB或者TAGC地消息。但是限制知识一个消息只能有一个标签,这对于复杂地场景可能不起作用,在这种情况下,可以使用S原创 2020-05-11 16:29:29 · 200 阅读 · 0 评论 -
【RocketMQ】5.顺序消息、延时消息、批量消息
顺序消息消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMq可以严格的保证消息有序,可以分为区分有序或者全局有序。顺序消费的原理解析,在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);而消费消息的时候从多个queue上拉取消息,这种情况发送和消息式不能保证顺序。但是如果控制发送的顺序消息只依次发送到同一个queue中,消费的时候只从这个queue上拉取,则就保证了顺序。当发送和消费参与的queue只有一个,则是全局有序;如果多个que原创 2020-05-10 23:09:10 · 456 阅读 · 0 评论 -
【RocketMQ】4.消息发送,同步消息,异步消息,单向消息,消息消费
开始步骤,创建springboot项目导入MQ客户端依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.4.0</version></dependency>消息发送者步骤分析创建消息生产者producer,并制原创 2020-05-10 11:05:50 · 437 阅读 · 0 评论 -
【RocketMQ】1. MQ知识概要以及快速入门
1.RocketMQ介绍1.1为什么要用MQ消息队列是一种“先进先出”的数据结构其应用场景主要包含以下三个方面应用解耦系统的耦合性越高,容错性就约低。以电商应用为例子,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统、任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验使用消息队列解耦,系统耦合性就会提高。比如物流系统发生故障,需要几分钟才能修复,这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复后,补充处原创 2020-05-09 15:44:23 · 337 阅读 · 1 评论 -
【RocketMQ】2. 在服务器上分布式搭建多Master多Slave模式RocketMQ
RocketMQ集群搭建1.各角色介绍Producer:消息的发送者;Consumer:消息的接收者;Broker:暂存和传输消息;NameServer:管理Broker;Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或多个Topic消息Message Queue:相当于是Topic的分区;用于并行发送和接收消息2. 集群搭建方式集群特点NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步B原创 2020-05-09 19:03:53 · 372 阅读 · 0 评论 -
【RocketMQ】3.RoketMQ可视化界面安装
一、概述RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-console,这个便是管理控制台项目,先将incubator-rocketmq=externals拉到本地,因为我们需要自己对rocketmq-console进行变一打包运行,本身就是一个spring-boot项目,因此修改好内容就可以直接打包。二、下载并编译打包git clone https://github.com/apache/rocketmq-e原创 2020-05-09 19:54:04 · 671 阅读 · 0 评论