
RocketMQ
文章平均质量分 81
泮小俊233
技术爱好者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RocketMQ之broker消息存储
从broker启动的注册处理器配置中可以看到 public void registerProcessor() { /** * SendMessageProcessor */ SendMessageProcessor sendProcessor = new SendMessageProcessor(this); ...原创 2018-06-21 17:27:35 · 1485 阅读 · 0 评论 -
RocketMQ之Producer启动
RocketMQ中的生产者通过构造DefaultMQProducer实例,我们来看下DefaultMQProducer。 protected final transient DefaultMQProducerImpl defaultMQProducerImpl; private String producerGroup; private String createTopicK...原创 2018-06-14 21:01:51 · 4968 阅读 · 0 评论 -
RocketMQ之PushConsumer的启动
之前分析了PullConsumer的整个流程,这次来看看PushConsumer的启动流程,老样子我们来看DefaultMQPushConsumer的构造 public DefaultMQPushConsumer(final String consumerGroup, RPCHook rpcHook, AllocateMessageQueueStrategy allocate...原创 2018-06-24 00:58:01 · 11687 阅读 · 0 评论 -
RocketMQ之Producer异步消息发送
调用producer的send()方法,并传入msg跟回调callBack实例。DefaultProducer的send方法调用DefaultProducerImpl的send方法,该方法直接调用sendDefaultImpl方法,并传入msg、communicationModel、回调callBack实例、跟默认的timeout。public enum CommunicationMode ...原创 2019-02-26 08:42:03 · 10603 阅读 · 0 评论 -
RocketMQ之broker主从同步的实现
我们可以看到在DefaultMessageStore的start方法中通过haService的start()方法启动自己的HA服务。 public void start() throws Exception { this.acceptSocketService.beginAccept(); this.acceptSocketService.start(); ...原创 2018-06-25 21:46:43 · 2432 阅读 · 0 评论 -
RocketMQ之Pull消费者客户端启动
Pull消费者客户端(主动拉取消息的消费者)即构造了DefaultMQPullConsumer对象,DefaultMQPullConsumer继承了ClientConfig类。我们先看其构造方法 public DefaultMQPullConsumer(final String consumerGroup, RPCHook rpcHook) { this.consumerGr...原创 2018-06-19 17:32:29 · 2238 阅读 · 0 评论 -
RocketMQ之PullConsumer消息拉取实现
PullConsumer拉去消息需要自己调用pull方法主动去拉取消息,调用DefaultMQPullConsumer的pull方法。 public PullResult pull(MessageQueue mq, String subExpression, long offset, int maxNums, long timeout) throws MQClientExce...原创 2018-06-19 21:23:47 · 4695 阅读 · 0 评论 -
Rocket之事务消息二阶段提交
在生产者Producer中,通过sendMessageInTransaction()方法发送事务消息,这里先向Broker发送一条预处理消息,sendMessageInTransaction()方法中,传入了需要发送的事务消息跟实现了LocalTransactionExecuter接口的tranExecutor实例跟参数,在其中的executeLocalTransactionBranch方法中实现...原创 2018-07-01 21:54:45 · 3517 阅读 · 0 评论 -
RocketMQ之broker消息索引
我们可以知道,broker的消息完全顺序地存储在commitLog上,且每条消息的大小不一致,如果我们根据不同的主题查,或者根据消息id查找都要遍历整个commitLog文件,那肯定是不合理的。(要提一下,消息的一个主题topic,在一个broker上可以分成多个消息队列,默认是4个,也就是消息队列是基于topic+broker),所以RocketMQ采用了ConsumerQueue文件存储定长的...原创 2018-06-27 13:15:35 · 1149 阅读 · 0 评论