rocketMq源码
文章平均质量分 79
Nuan_Feng
蓝桥杯国赛一等奖。唯有志存千里,方能风行天下。
展开
-
RocketMQ常见问题总结
文章目录如何顺序消息?如何定时消息?如何解决重复消费?如何HA?如何顺序消息?全局有序,只能配置一个MQ.局部有序的话,设置顺序消息监听就可以了.若是想要根据如订单生命周期有序消费,让他们路由到同一个MQ就行了.自定义MessageQueueSelector,配置MQ路由规则.如何定时消息?MQ不支持定时,但支持很多种延时定时,MQ为每个延时单独线程处理,处理步骤是定时消息属性存储了消息的原生ID和Topic,然后定时消息恢复成原生消息,然后丢到CommitLog存储.如何解决重复消费?分析源原创 2020-09-11 16:23:38 · 607 阅读 · 0 评论 -
RocketMq4.7源码解析之八(消息过滤)
消息过滤RocketMQ 支持表达式过滤TAG:消息定义标签,根据消息属性tag 进行匹配。SQL92:消息属性过滤上下文, 实现SQL 条件过滤表达式类过滤允许提交1个过滤类到FiIterServer ,消息消费者从FilterServer 拉取消息,消息经过FilterServer 时会执行过滤逻辑TAG过滤消息发送者在消息发送时如果设置了消息的tags 属性,存储在消息属性中,先存储在CommitLog文件中,然后转发到消息消费队列,消息消费队列会用8 个字节存储消息tag的ha原创 2020-09-08 18:04:36 · 221 阅读 · 0 评论 -
RocketMq4.7源码解析之七(消息消费)
文章目录消息消费以组的模式开展, 一个消费组内可以包含多个消费者,每一个消费组可订阅多个主题,消费组之间有集群模式与广播模式两种消费模式。集群模式,主题下的同一条消息只允许被其中一个消费者消费。广播模式,主题下的同一条消息将被集群内的所有消费者消费一次。消息服务器与消费者之间的消息传送也有两种方式:拉模式:消费端主动发起拉消息请求推模式:消息到达消息服务器后,推送给消息消费者.推模式的实现基于拉模式,在拉模式上包装一层,一个拉取任务完成后开始下一个拉取任务。集群模式下,多个消费者如何对原创 2020-09-04 13:30:26 · 514 阅读 · 0 评论 -
RocketMq4.7源码解析之六(映射文件与存储文件)
映射文件RocketMQ 使用MappedFile 、MappedFileQueue 来封装存储文件MappedFileQueue 映射文件队列字段属性 //存储目录 private final String storePath; //单个文件的存储大小。 private final int mappedFileSize; //mappedFiles文件集合。 private final CopyOnWriteArrayList<MappedFile原创 2020-08-31 20:33:30 · 275 阅读 · 0 评论 -
RocketMq4.7源码解析之五(消息存储)
文章目录存储文件组织与内存映射RocketMQ 存储文件Commitlog 文件ConsumeQueue文件Indexcheckpoint实时更新消息消费队列与索引文件1 ) CommitLog :消息存储文件,所有消息主题的消息都存储在CommitLog 文件中。2 ) ConsumeQueue :消息消费队列,消息到达CommitLog 文件后,将异步转发到消息消费队列,供消息消费者消费。3 ) IndexFile :消息索引文件,主要存储消息Key 与Offset 的对应关系。4 )事务状原创 2020-08-29 14:14:58 · 713 阅读 · 0 评论 -
RocketMq源码解析之四(生产者消息发送)
文章目录消息发送消息启动流程消息发送流程消息校验查找主题路由信息选择消息队列消息发送RocketMQ 支持3 种消息发送方式:同步(sync) 、异步(async)、单向(o neway) 。同步: 发送者向MQ 执行发送消息API 时,同步等待, 直到消息服务器返回发送结果。异步: 发送者向MQ 执行发送消息API 时,指定消息发送成功后的回掉函数,然后调用消息发送API 后,立即返回,消息发送者线程不阻塞,直到运行结束,消息发送成功或失败的回调任务在一个新的线程中执行。单向:消息发送者向M原创 2020-08-26 12:05:03 · 686 阅读 · 0 评论 -
RocketMq4.7源码解析之三(NameServer 路由注册,删除,发现)
文章目录NameServer 路由注册、故障剔除路由注册brokernamesrvRouteInfoManager成员变量创建或更新TopicConfig路由删除定时检测失效删除broker主动关闭删除brokername路由发现NameServer 路由注册、故障剔除名字服务(Name Server) 名称服务充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题相应的Broker IP列表。多个Namesrv实例组成集群,但相互独立,没有信息交换。代理服务器(Broker Server)原创 2020-08-26 12:04:49 · 507 阅读 · 0 评论 -
RocketMq4.7源码解析之二(name,broker启动流程)
这里写自定义目录标题NameServer 路由注册、故障剔除路由注册路由删除路由发现消息发送消息启动流程消息发送流程消息校验查找主题路由信息选择消息队列NameServer 路由注册、故障剔除路由注册路由删除路由发现消息发送RocketMQ 支持3 种消息发送方式:同步(sync) 、异步(async)、单向(o neway) 。同步: 发送者向MQ 执行发送消息API 时,同步等待, 直到消息服务器返回发送结果。异步: 发送者向MQ 执行发送消息API 时,指定消息发送成功后的回掉函数原创 2020-08-24 21:05:19 · 283 阅读 · 0 评论 -
RocketMq4.7源码解析之一(环境配置)
这里写自定义目录标题启动NamesrvStartup启动BrokerStartup启动Producer和ConsumerProducer正常执行Consumer正常执行启动NamesrvStartup配置环境变量ROCKETMQ_HOME=E:\workspace\my\spring\rocketmq\distribution启动成功启动BrokerStartup注意:新版本不需要启动的时候设置autoCreateTopicEnable = true;分析源码可得启动报错配置原创 2020-08-22 19:48:09 · 446 阅读 · 0 评论