
RocketMQ
tydhot
gogogo
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RocketMQ源码解析-事务消息的二阶段提交
在生产者producer当中,通过sendMessageInTransaction()方法来发送事务消息,但是在一开始向Broker发送的事务消息的时候,具体的事务操作还并没有进行处理,而是相当于向Broker发送了一条预处理消息。在sendMessageInTransaction()的参数中,除了需要发送的事务消息之外,还需要实现了sendMessageInTransaction接口的类作为参数...原创 2017-11-26 17:06:46 · 2098 阅读 · 0 评论 -
RocketMQ源码解析-Producer消息发送
首先以默认的异步消息发送模式作为例子。DefaultMQProducer中的send()方法会直接调用DefaultMQProducerImpl的send()方法,在DefaultMQProducerImpl会直接调用sendDefaultImpl()方法。 public void send(Message msg, SendCallback sendCallback) throws M...原创 2017-10-15 13:34:19 · 2463 阅读 · 0 评论 -
RocketMQ源码解析-Consumer启动(2)
接着上文的Pull消费者启动继续讲。public void start() throws MQClientException { switch (this.serviceState) { case CREATE_JUST: this.serviceState = ServiceState.START_FAILED; t...原创 2017-10-22 02:07:03 · 852 阅读 · 0 评论 -
RocketMQ源码解析-PullConsumer取消息(1)
PullConsumer取消息需要自己手动调用Consumer的pull方法主动拉取消息。需要的参数有具体的消息队列(调用消费者的fetchSubscibeMessageQueue()可以得到相应topic的所欲消息队列),需要过滤用的tag(可以为空),以及消费队列所在的进度,以及这次取消息的最大量。 调用了DefaultMQPullConsumer的Pull()方法之后会直接调用Def...原创 2017-10-29 21:27:00 · 868 阅读 · 0 评论 -
RocketMQ源码解析-Consumer启动(1)
DefaultMQPullConsumer继承了ClientConfig类,作为主动拉获取消息的消费者实现接口的管理与相关属性的配置(与PushConsumer对应)。相比生产者,消费者配置的属性要复杂得多。由于在RocketMQ中,生产者消费者共用一个客户端实现类MQClient,所以在前文中没有解析的方法是属于服务于消费者的。首先以主动拉取方式获得消息的消费者PullConsumer为例子。...原创 2017-10-16 23:37:32 · 1284 阅读 · 0 评论 -
RocketMQ源码解析-PullConsumer取消息(2)
如果在调用DefaultMQPullConsumer的pull方法的时候添加了pullcallback参数,那么就会调用DefaultMQPullConsumerImpl的pullAsyncImpl()方法进行异步发送。 private void pullAsyncImpl(// final MessageQueue mq,// ...原创 2017-10-30 22:46:51 · 869 阅读 · 0 评论 -
RocketMQ源码解析-PushConsumer(1)
PushConsumer的启动。DefaultMQPushConusmer执行start()方法,然后直接调用DefaultMQPushConusmer的start()方法。 public void start() throws MQClientException { switch (this.serviceState) { case CREATE_JUST: ...原创 2017-11-06 23:23:34 · 1899 阅读 · 0 评论 -
RocketMQ源码解析-PushConsumer(2)
继续之前文章的内容。PushConsumer的启动已经到了mqClientInstance。public void start() throws MQClientException { PackageConflictDetect.detectFastjson(); synchronized (this) { switch (this.serviceSta...原创 2017-11-07 23:11:19 · 635 阅读 · 0 评论 -
RocketMQ源码解析-PushConsumer(3)
public boolean putMessage(final List<MessageExt> msgs) { boolean dispatchToConsume = false; try { this.lockTreeMap.writeLock().lockInterruptibly(); try { int...原创 2017-11-08 21:15:04 · 374 阅读 · 0 评论 -
RocketMQ源码解析-Broker的HA实现
以master异步复制为例子。在rocketmq的slave broker机子当中,会在DefaultMessageStore的启动当中启动自己的HaService来进行自己的ha服务。 public void start() { this.acceptSocketService.beginAccept(); this.acceptSocketService.s...原创 2017-11-16 18:01:34 · 1290 阅读 · 0 评论 -
RocketMQ源码解析-Broker的消息存储
Broker接收得到的来自provider的消息在sendMessageProcessor的sendMessage()方法当中处理。在sendMessage()方法当中会直接将所接收得到的消息封装为MessageExtBrokerInner。MessageExtBrokerInner msgInner = new MessageExtBrokerInner();msgInner.set...原创 2017-11-21 23:38:14 · 1198 阅读 · 0 评论 -
RocketMQ源码解析-Producer启动
RocketMQ中生产者通过DefaultProducer来创建。 protected final transient DefaultMQProducerImpl defaultMQProducerImpl;private String producerGroup;private String createTopicKey = MixAll.DEFAULT_TOPIC;priva...原创 2017-10-15 00:12:17 · 4309 阅读 · 0 评论