RocketMq源码解读
西木风落
多年开发经验,专业、高效,致力于更好的自己
展开
-
RocketMq源码解读(五)Consumer分析
一、Consumer的类图结构 在RocketMq中,存在PullConsumer和PushConsumer两种消费端, 类图结构有: 可以看到,二者同实现了MQConsumer,只是在底层实现上有所不同。 PullConsumer的优缺点 优点 Consumer主动从Broker拉取消息,所以消息的堆积处理比较简单 对于offset的维护,能自行手动维护,可以对单一消息多次...原创 2019-12-26 21:06:25 · 364 阅读 · 0 评论 -
RocketMq源码解读(五)MQPushConsumer启动流程
本章主要从consumer的启动流程介绍,详解其源码和流程。 启动泳道图:原创 2019-11-11 09:54:29 · 167 阅读 · 0 评论 -
RocketMq源码解读(四)事务消息发送
上一章内容,介绍了RocketMQ的普通消息发送,本章内容主要介绍发送事务消息。 一、事务消息的发送实例 public class TransactionProducerTest { public static void main(String[] args) throws MQClientException, InterruptedException { //...原创 2019-10-31 21:05:25 · 362 阅读 · 0 评论 -
RocketMq源码解读(四)消息发送
前两章内容中,介绍了Producer的启动过程,然后是如何创建topic,本章内容将主要集中在如何发送消息到broker 一、消息的投递 消息的投递分为普通消息的投递和事务消息的投递 public class DefaultMQProducer extends ClientConfig implements MQProducer{ // 所有的实际操作委托给这个实现 ...原创 2019-10-30 21:29:32 · 446 阅读 · 0 评论 -
RocketMq源码解读(四)Topic创建
上一章内容介绍了MQ Producer如何启动,并且向所有的broker注册Group的过程,本章内容主要集中在如何创建消息的topic。 一、topic的创建方法 public class DefaultMQProducer extends ClientConfig implements MQProducer{ // 所有的实际操作委托给这个实现 protected...原创 2019-10-30 20:56:58 · 1947 阅读 · 0 评论 -
RocketMq源码解读(三)Producer启动
本章主要介绍RocketMq的消息格式和消息的发送 一、RocketMQ的消息格式 在RocketMq中,每一个消息被封装为Message,有属性topic,flag,扩展字段和消息内容。 public class Message implements Serializable{ private String topic; private int flag; ...原创 2019-10-24 21:37:09 · 311 阅读 · 0 评论 -
RocketMq源码解读(二)
本章主要介绍的内容有:消息过滤服务filterSrv 一、什么是filterSrv 1、filtersrv filtersrv是RocketMQ中的消息过滤服务,是介于consumer和broker之间的代理。主要作用是在consumer端定义好filter过滤规则,动态编译成class,根据定义的规则,从broker拉取消息,然后将拉取到的满足过滤条件的消息返回给consumer。所以整体...原创 2019-10-24 15:41:13 · 213 阅读 · 1 评论 -
RocketMq源码解读(一)
nameserver作为替换早期版本zookeeper的轻量级实现,它只实现了zk的一致性+发布订阅。NameSrv的一致性是通过每个Broker、Consumer、Producer定时心跳同步的,存在短暂的弱一致性。发布订阅时,Broker会与每一个NameSrv保持TCP连接,上传topic信息,自身的健康状态,filter信息等,Consumer和Producer也会与每一台NameSrv保...原创 2019-10-19 17:48:45 · 546 阅读 · 0 评论