
mq
诗人不写诗
当你足够努力时,全世界都会给你让路
展开
-
2-RocketMQ之消息发送-接收-消费流程
RocketMQ的数据存储结构还是挺复杂的,我们以消息创建-发送-消费为流向,来解释整个过程,当你创建一个消息时可能的代码是下面这样,这时你指定了Topic属性,Producer就能通过Topic属性找到这个消息应该到达那个Broker的哪个queue,Message msg = new Message("bill-topic", "bill-tag", JSON.toJSONString(...原创 2019-03-05 00:12:51 · 3286 阅读 · 0 评论 -
RocketMQ之Broker
Broker启动后默认监听10911和10912和10909三个端口下面是broker的相关配置:autoCreateSubscriptionGroup true brokerName broker-a listenPort 10911 haListenPort 10912 clientManagerThreadPoolQueueCapacity 1000...原创 2019-03-02 18:43:53 · 1355 阅读 · 1 评论 -
RocketMQ之Producer
1Producer有个ProducerGroup的值需要设置,因为Producer是可以分布式部署的,我们需要将逻辑上属于一个整体的producer关联起来,那就靠ProducerGroup这个值来设置的,同属一个group的producer产生的消息理论上应该是一个业务类型。构造Producer的时候可以指定:private final DefaultMQProducer PRODUC...原创 2019-03-03 12:06:29 · 3638 阅读 · 0 评论 -
RocketMQ之Topic创建
Topic是Producer生产消息,Consumer消费消息的依据,所以Topic的创建机制和过程是我们应该掌握的,首先,创建Topic的方式有:1、Producer发送一个没有创建的Topic的消息,且Broker设置为允许创建2、通过rocketmq-console控制面板创建3、通过mqadmin创建这些操作最终都是到了Broker,由Broker进行统一处理:public...原创 2019-03-03 18:47:59 · 8179 阅读 · 0 评论 -
RocketMQ之消息存储管理
我们知道RocketMQ的queue都是逻辑上的概念,实际消息都是写入文件来管理的,达到了操作queue的表象,下面就RocketMQ管理消息操作文件的思路做个讲解。RocketMQ主要有6类文件,小文件有3类:checkpoint文件,config目录下的配置文件,abort文件,大文件有3类:Index文件,ConsumeQueue文件,CommitLog文件。Broker操作...原创 2019-03-06 14:54:59 · 791 阅读 · 0 评论 -
RocketMQ之mqadmin使用
更新和修改RocketMQ属性和部署属性的方式有两个,一个是使用控制台图形化界面来修改,另一个是使用mqadmin工具通过命令来修改,这里就说说mqadmin的使用方式:1 创建Topic 指令 updateTopic 类路径 com.alibaba.rocketmq.tools.command.topic.Updat...原创 2019-03-03 21:33:44 · 5237 阅读 · 0 评论 -
RocketMQ之路由管理
RocketMQ是一个分布式集群系统,每个节点之间都会进行通信,其中的通信逻辑使我们必须理清楚的。涉及到的组件包括:NameServer、Broker、Producer、Consumer,这里以Cluster结构为模型来分析各个节点之间的通信流程。路由管理是RocketMQ的核心功能之一,涵盖了订阅管理,连接管理,负载均衡等一系列功能,代码分布在NameServer、Broker、Producer...原创 2019-03-04 13:36:36 · 2004 阅读 · 0 评论 -
RocketMQ之MQClientInstance
MQClientInstance不是对外应用类,也就是说用户不需要自己实例化使用他。并且,MQClientInstance的实例化并不是直接new后使用,而是通过MQClientManager这个类型。MQClientManager是个单例类,使用饿汉模式设计保证线程安全。他的作用是提供MQClientInstance实例,RocketMQ认为,MQClientInstance的实例是可以复用的实...原创 2019-03-11 02:04:01 · 3082 阅读 · 0 评论 -
RocketMQ之MQFaultStrategy
在DefaultMQProducerImpl中聚合了一个对象private MQFaultStrategy mqFaultStrategy = new MQFaultStrategy();这个类型主要是用来规划消息发送时的延迟策略。下面我们来研读下MQFaultStrategy这个类型:public class MQFaultStrategy { private final...原创 2019-03-12 18:39:59 · 738 阅读 · 0 评论 -
RocketMQ之线程池
在使用RocketMQ或者研读RocketMQ源码的时候,多线处理是我们应该关注的部分,因为其中的很多编码细节和架构设计就是为了应付多线程的,所以我们需要了解下RocketMQ在那些地方是有多线程来处理的。...原创 2020-12-02 23:10:11 · 1892 阅读 · 0 评论 -
1-RocketMQ架构
先来看看官方的一张非常模糊的图片:服务程序最简单的需要启动一个NameServer和一个Broker,集群是高可用需要的,这里的Producer Cluster和Consumer Cluster属于客户端了,所以整体结构应该是很清晰的了。 Broker通过队列存储着各种Topic的消息,NameServer维护着所有Broker和Topic的关系,Broker和NameServer会一直保...原创 2019-01-09 18:21:21 · 194 阅读 · 0 评论