rocketMq-producer介绍

作者: 晴天哥_王志 | 来源:发表于2018-03-19 14:50 被阅读77次

producer介绍

producer在rocketMq扮演的角色是消息的发送过程,其实宏观上来讲其实就包括两大块,分别是消息的发送以及一堆定时任务。

producer在发送消息过程中涉及到发送队列的选择(topic、broker、queue),所以只要在整个发送过程中理清楚这几者之间的关系,就能理解整个发送过程,当然其中包括 非严格顺序消息、顺序消息、事务消息。这里只讲非顺序消息、顺序消息,不包括事务消息。

producer的发送过程

rocketMq发送时序图 rocketMq发送消息活动图


rocketMq发送消息过程

说明:

    核心逻辑参见DefaultMQProducerImpl类

    rocketMq发送消息过程由以下组成:组装消息&获取topicPubInfo&选择队列&发送消息。

    组装消息:发送消息的组装,包括设置topic&tag&延时&是否有序等等。

    生成topicPublishInfo:定期或按需从namesrv同步该topic的broker信息

    选择队列:从topicPubishInfo中按照轮询(roundrobin)选取队列,i++%(队列长度),顺序消息根据自定义的selector按照固定的key进行hash选择同一个队列

    发送消息:同步/异常方式发现on个消息给broker

生成TopicPublishInfo过程

TopicPublishInfo生成逻辑 TopicPublishInfo生成代码

说明:

    参见MQClientInstance类

    图片备注中已经写明了MessageQueue的生成过程

SelectOneMessageQueue过程

选择MessageQueue逻辑 选择MessageQueue逻辑

producer的定时任务

producer的定时任务

说明:

    关键是前3个定时任务,后面两个一般是consumer端会使用,这个类是公用的。


producer的初始化过程

producer初始化过程I producer初始化过程II

说明:

    参见DefaultMQProducerImpl类,具体的功能在上图中已备注。


相关文章

  • rocketMq-producer介绍

    producer介绍 producer在rocketMq扮演的角色是消息的发送过程,其实宏观上来讲其实就包括两大块...

  • rocketmq-producer

    rocketmq的producer发送消息,大致会分为如下几种消息 同步消息,发送者必须同步等待; 异步消息,消息...

  • RocketMQ-Producer

    rocketmq 发送端的设计1、需要考虑什么? 容错设计 如果投递到某个服务端失败了,在多主的情况下可以选择可用...

  • 三、RocketMQ-Producer启动流程

    一、UML图例 二、大致流程说明: 流程为非事务消息流程 在main方法中调用 new DefaultMQProd...

  • RocketMQ-Producer生产者解析

    Producer 概念说明* 初始化流程&流程图&相关类关系说明* 消息发送过程* 批量消息发送* 发送顺序消息...

  • 四、RocketMQ-Producer的Send方法

    一、概述 RocketMQ的producer默认有两个,一个是DefaultMQProducer,另一个是Tran...

  • Runtime介绍---术语介绍

    1. 什么是Runtime Runtime又叫运行时,是一套C语言的API。 我们平时编写的OC代码,底层都是基于...

  • 介绍

    万物终有一天会消失殆尽,诸神出卖黎明,光明为黑暗所湮灭,日月皆痕,海潮鸣泣,幼雏嚎啕,生灵涂炭。 托里奥世纪第20...

  • 介绍😊

    大家好,我是beth,初入简书,不邀自来,还请各位见谅! 先说说我是怎么想着来的吧?这不是刚过了一个寒假嘛...

  • 介绍

    在这个世界上还有三个家族他们不受各个国家联合国管。但他们身上有着使命分别是帝国家族曲国家族圣国家族。他们隐藏在一个...

网友评论

    本文标题:rocketMq-producer介绍

    本文链接:https://www.haomeiwen.com/subject/vqpyqftx.html