![](https://img-blog.csdnimg.cn/20210818185133759.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Arthur解析系列之RocketMq
rocketMq相关
愿好
科技推动人类物质文明发展,人文推动人类精神文明发展。
展开
-
Arthur解析系列之RocketMq
一、概念和特性:1、rocketMq的基本概念和模型2、rocketMq的功能特性二、架构设计:1、rocketMq的架构及工作流程三、问题和解决方案1、使用rocketMq遇到的问题2、rocketMq的解决方案3、消息中间件选型要点...原创 2022-03-16 18:21:49 · 118 阅读 · 0 评论 -
rocketMq问题和解决方案
一、使用rocketMq遇到的问题1、producer:1)、消息投递失败2)、需要延迟投递2、nameserver:宕机也不会造成消息丢失,单点故障有集群3、broker:1)、 消息同步过程中,broker宕机出现丢失2)、硬件设备损坏4、consumer:1)、消费消息失败2)、重复消费二、rocketMq的解决方案1、producer:1)、发送方式:同步或异步2)、消息类型:事务消息、延迟消息事务消息使得本地事务 和 消息投原创 2022-03-16 18:18:52 · 2555 阅读 · 0 评论 -
RocketMq的基础架构
一、rocketMq的架构:二、工作流程:1、nameServer启动后监听端口,等待Broker、Producer、Consumer连上来,相当于一个路由控制中心。2、broker启动,连接nameServer,定时发送心跳包。注册成功后,NameServer集群中就有Topic跟Broker的映射关系。3、收发消息前,先创建Topic,也可以在发送消息时自动创建Topic。4、producer选择从nameServer寻找topic的队列所在broker发送消息。5、consum原创 2022-03-16 17:51:31 · 237 阅读 · 0 评论 -
rocketMq的基本概念和模型
一、rocketMq的基本概念和模型1、消息模型:主要由producer、broker、nameserver和consumer组成。即消息生产、路由、中转和消费2、主题(Topic)和标签(tag)topic表示一类消息的集合, Topic 与 Tag 都是业务上用来归类的标识,区分在于 Topic 是一级分类,而 Tag 可以说是二级分类。3、消息(Message):每条消息必须属于一个主题。RocketMQ中每个消息拥有唯一的Message ID,且可以携带具有业务标识的原创 2022-03-16 17:47:27 · 810 阅读 · 0 评论 -
延迟消息原理
RocketMQ 延迟消息,不支持任意时间精度,支持特定的 level有18个,例如定时 1s,5s,10s,1m 等。该功能由ScheduleMessageService实现原创 2021-08-20 13:54:45 · 96 阅读 · 0 评论 -
如何防止消息重复?
造成消息重复的根本原因是:网络不可达。只要通过网络交换数据,就无法避免这个问题。所以解决这个问题的办法就是绕过这个问题。那么问题就变成了:如果消费端收到两条一样的消息,应该怎样处理?步骤1:只要保证消息唯一是可识别的步骤2:记录已处理过的消息,并设置过期时间避免占用内存。我在财务服务里的做法是通过stringRedisTemplate的setIfAbsent方法存储一个发消息前产生的分布式id,如果返回fasle表示消息已经处理过,当前消息为重复消息,不处理,否则需对分布式id设置过期时间5秒,原创 2021-08-20 13:53:12 · 663 阅读 · 0 评论 -
如何保证消息顺序
RocketMQ的消息是存储到Topic的queue里面的,queue本身是FIFO(First Int First Out)先进先出队列。所以单个queue是可以保证有序性的。但问题是1个topic有N个queue,作者这么设计的好处也很明显,天然支持集群和负载均衡的特性,将海量数据均匀分配到各个queue上,你发了10条消息到同一个topic上,这10条消息会自动分散在topic下的所有queue中,所以消费的时候不一定是先消费哪个queue,后消费哪个queue,这就导致了无序消费。如何保证:原创 2021-08-20 13:51:49 · 146 阅读 · 0 评论 -
RocketMQ由哪些角色组成,每个角色作用和特点是什么?
NameServer:NameServer主要负责Topic和路由信息的管理,无状态的动态列表,而zookeeper是有状态的。Producer: 消息生产者,负责产生消息,一般由业务系统负责产生消息,负责发消息到broker。Broker: 消息中转角色,负责存储消息,转发消息。Consumer:消息消费者,负责从broker上拉取消息消费,消费完返回ack,一般是后台系统负责异步消费。...原创 2021-08-18 19:44:14 · 603 阅读 · 0 评论 -
为什么要使用消息队列?消息队列选型?
引入消息队列的原因:当项目比较大时做了分布式系统,所有远程服务调用的请求都是同步执行容易出现问题。所以引入了消息队列。消息队列的作用:消息队列选型:原创 2021-08-18 19:41:14 · 197 阅读 · 0 评论 -
关于rocketMq搭建问题
执行mvn compile时遇到org.apache.rocketmq:rocketmq-tools:jar:4.4.0-SNAPSHOT包无法下载的问题:解决办法: 在pom.xml中去掉依赖-SHAPSHOT后缀即可,4.4.0-SHAPSHOT改为4.4.0...原创 2019-04-03 17:10:44 · 296 阅读 · 0 评论