rocketmq
文章平均质量分 72
rockmq学习
AttackingRookie
这个作者很懒,什么都没留下…
展开
-
rocketmq - 功能 - 消费幂等
消费幂等消息队列 RocketMQ 消费者在接收到消息以后,有必要根据业务上的唯一 Key 对消息做幂等处理的必要性。消费幂等的必要性在互联网应用中,尤其在网络不稳定的情况下,消息队列 RocketMQ 的消息有可能会出现重复,这个重复简单可以概括为以下情况:发送时消息重复当一条消息已被成功发送到服务端并完成持久化,此时出现了网络闪断或者客户端宕机,导致服务端对客户端应答失败。 如果此时生产者意识到消息发送失败并尝试再次发送消息,消费者后续会收到两条内容相同并且 Message ID 也相同的原创 2022-04-19 11:36:48 · 149 阅读 · 0 评论 -
rocketmq - 功能 - 死信队列
死信队列当一条消息初次消费失败,消息队列 RocketMQ 会自动进行消息重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列 RocketMQ 不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。在消息队列 RocketMQ 中,这种正常情况下无法被消费的消息称为死信消息(Dead-Letter Message),存储死信消息的特殊队列称为死信队列(Dead-Letter Queue)死信特性死信消息具有以下特性不会再被消费者正常消费。原创 2022-04-19 11:32:18 · 446 阅读 · 0 评论 -
rocketmq - 功能 - 消息重试
消息重试顺序消息的重试对于顺序消息,当消费者消费消息失败后,消息队列 RocketMQ 会自动不断进行消息重试(每次间隔时间为 1 秒),这时,应用会出现消息消费被阻塞的情况。因此,在使用顺序消息时,务必保证应用能够及时监控并处理消费失败的情况,避免阻塞现象的发生。无序消息的重试对于无序消息(普通、定时、延时、事务消息),当消费者消费消息失败时,您可以通过设置返回状态达到消息重试的结果。无序消息的重试只针对集群消费方式生效;广播方式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消原创 2022-04-19 11:27:43 · 435 阅读 · 0 评论 -
rocketmq - 功能 - 负载均衡
负载均衡Producer负载均衡Producer端,每个实例在发消息的时候,默认会轮询所有的message queue发送,以达到让消息平均落在不同的queue上。而由于queue可以散落在不同的broker,所以消息就发送到不同的broker下,如下图:图中箭头线条上的标号代表顺序,发布方会把第一条消息发送至 Queue 0,然后第二条消息发送至 Queue 1,以此类推。Consumer负载均衡集群模式在集群消费模式下,每条消息只需要投递到订阅这个topic的Consumer Group下原创 2022-04-19 11:21:19 · 254 阅读 · 0 评论 -
rocketmq - 功能 - 高可用性机制
高可用性机制RocketMQ分布式集群是通过Master和Slave的配合达到高可用性的。Master和Slave的区别:在Broker的配置文件中,参数 brokerId的值为0表明这个Broker是Master,大于0表明这个Broker是 Slave,同时brokerRole参数也会说明这个Broker是Master还是Slave。Master角色的Broker支持读和写,Slave角色的Broker仅支持读,也就是 Producer只能和Master角色的Broker连接写入消息;Consu原创 2022-04-19 11:06:43 · 87 阅读 · 0 评论 -
rocketmq - 功能 - 消息存储
消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4、5、6步骤MQ删除消息存储介质关系型数据库DBApache下开源的另外一款M原创 2022-04-19 10:45:58 · 406 阅读 · 0 评论 -
springboot 整合rocketmq
消息生产者添加依赖(pom.xml)<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version></parent><properties> <原创 2022-04-14 17:53:02 · 421 阅读 · 0 评论 -
rocketmq - 消息发送样例
概述导入MQ客户端依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.4.0</version></dependency>消息发送者步骤分析1.创建消息生产者producer,并制定生产者组名2.指定Nameserve原创 2022-04-14 16:17:17 · 282 阅读 · 0 评论 -
rocketmq - 集群监控平台搭建
概述RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-console,这个便是管理控制台项目了,先将incubator-rocketmq-externals拉到本地,因为我们需要自己对rocketmq-console进行编译打包运行。下载并编译打包git clone https://github.com/apache/rocketmq-externalscd rocketmq-consolemvn cl原创 2022-04-13 14:42:41 · 326 阅读 · 0 评论 -
rocketmq - mqadmin
使用方式进入RocketMQ安装位置,在bin目录下执行./mqadmin {command} {args}命令介绍Topic相关 名称 含义 命令选项 说明 updateTopic 创建更新Topic配置 -b Broker 地址,表示 topic 所在 Broker,只支持单台Broker,地址为ip:port -c cluster 名称,表示 topic 所在集群(集群可通过 clusterList 查询)原创 2022-04-13 14:07:27 · 434 阅读 · 0 评论 -
RocketMQ - 双主双从集群搭建
黑马程序员 rocketmq总体架构消息高可用采用2m-2s(同步双写)方式集群工作流程启动NameServer,NameServer起来后监听端口,等待Broker、Producer、Consumer连上来,相当于一个路由控制中心。Broker启动,跟所有的NameServer保持长连接,定时发送心跳包。心跳包中包含当前Broker信息(IP+端口等)以及存储所有Topic信息。注册成功后,NameServer集群中就有Topic跟Broker的映射关系。收发消息前,先创建Topic,.原创 2022-04-13 13:54:05 · 454 阅读 · 1 评论 -
rocketmq - 简介
角色简介Producer:消息的发送者;举例:发信者Consumer:消息接收者;举例:收信者Broker:暂存和传输消息;举例:邮局NameServer:管理Broker;举例:各个邮局的管理机构Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息Message Queue:相当于是Topic的分区;用于并行发送和接收消息集群搭建方式集群特点NameServer是一个几乎无状态节点,可集群部署,节点之间无原创 2022-04-12 10:39:47 · 89 阅读 · 0 评论