首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RocketMQ Topic创建【源码笔记】

1.Topic创建的方式 Topic创建分为自动创建和通过命令行创建两种。通过broker配置参数autoCreateTopicEnable设置。...通常可以在非生产环境开启自动创建,生产环境待审批后再进行创建。...客户端发起Topic创建请求 客户端工作:向集群中各个broker主节点通知topic配置变更 参数设定:通过参数指定读队列数量、写队列数量、权限、当指定-c时,在该集群的所有broker都会创建 调用链...%n", addr); } 3.Broker处理Topic创建 Broker处理请求 1.更改本地topic配置缓存topicConfigTable 2.将缓存topicConfigTable配置信息写入磁盘...NameServer收到请求处理见:RocketMQ NameServer【源码笔记】 public synchronized void registerBrokerAll(final boolean

4.1K50
您找到你想要的搜索结果了吗?
是的
没有找到

深度解析RocketMQ Topic创建机制

我还记得第一次使用rocketmq的时候,需要去控制台预先创建topic,我当时就想为什么要这么设计,于是我决定撸一波源码,带大家从根源上吃透rocketmq topic创建机制。...其实rocketmq中存在两种不同的topic创建方式,一种是我刚刚说的预先创建,另一种是自动创建,下面我开车带大家从源码的角度来详细地解读这两种创建机制。...自动创建 默认情况下,topic不用手动创建,当producer进行消息发送时,会从nameserver拉取topic的路由信息,如果topic的路由信息不存在,那么会默认拉取broker启动时默认创建好名为...public static final String AUTO_CREATE_TOPIC_KEY_TOPIC = "TBW102"; 自动创建的开关配置在BrokerConfig中,通过autoCreateTopicEnable...自动创建与消息发送时获取topic信息的时序图: ?

3.4K91

Topic太多!RocketMQ炸了!

即使后续消费组重新使用,RETRY topic 也会重新创建,不影响消费。...DLQ topic在使用时才会创建,因此不会像RETRY topic 这样大量膨胀。 但是,RETRY topic不一样。...它是由RocketMQ服务端自动创建创建的时机有两个: 消费失败的时候,将消息发送回 broker,这时候会在服务端创建RETRY topic 消费失败创建RETRY topic consumer...client 和服务端保持心跳时创建RETRY topic 心跳时创建 retry topic 线下环境的消费组存在大量的临时测试group,而 RocketMQ会给每个实际存在的消费组创建RETRY...6.2 如果所有消息自动重试,顺序消息会乱序吗? 我们知道,RocketMQ中包含三种消息类型:普通消息、普通有序消息、严格有序消息。

48940

排查1:Broker 禁止自动创建 Topic,且用户没有通过手工方式创建 Topic

背景 系统订单创建成功之后需要发送订单创建成功的消息,但是今天突然遇到了如下的报错 org.apache.rocketmq.client.exception.MQClientException: No...route info of this topic, TopicTest See http://rocketmq.apache.org/docs/faq/ for further details....探究 出现上面的错误,主要有三种情况 一:Topic不存在,即没有创建出来次Topic(我们项目均为手动创建),或者Broker模块不支持自动创建topic。...二:Broker模块没有正确连接到Name Server 三:Producer没有正确连接到Name Server  办法 排查1:Broker 禁止自动创建 Topic,且用户没有通过手工方式创建 Topic...,autoCreateTopicEnable=true 证明是没有问题的 [root@localhost apache-rocketmq]# sh .

1.6K10

Rocketmq之No route info of this topic解决思路

前言 用过rocketmq的人,采用客户端调用的时候,可能会相对高频的出现的 No route info of this topic这个异常问题,然后你可能会拿着这个问题,直接谷歌百度一把,会发现网上告诉你的答案...,可能会有如下几种 1、配置autoCreateTopicEnable=true,如果这个属性没有配置,且你没有手动创建topic,就会出现上面的异常 注:这个属性在高版本已经默认配置了 2、fastjson...Please refer to Why RocketMQ 2....topic a、在shell里面执行如下 sh mqadmin updateTopic -blocalhost:10911 -nlocalhost:9876 -tinterTopic 3、创建topic...b、通过可视化web控制台rocketmq-console进行创建,其控制台下载地址如下 https://github.com/apache/rocketmq-externals ?

46.2K71

关于RocketMQ Topic创建机制,我还有一些细节上的思考

在撸完RocketMQ Topic创建机制后,我似乎还有一些意犹未尽的感觉,总觉得还缺一些什么。于是我就趁热打铁,提出以下两点我自己的一些思考。...通过撸源码可以知道,RocketMQ目前只能是通过手动配置topic1到b3和b4,那么这时问题又来了,如果集群中有成百上千个topic呢?...更好的解决方案是添加一个复制功能,新增的broker自动从nameserver拉取需要复制到新broker的topic配置。期待以后的版本迭代中如愿增加这个功能吧。 如何在集群中固定队列数量?...模式创建的话,就有可能造成某些broker负载过高,于是我想通过集群模式去创建topic,我们都知道集群模式创建broker会默认在集群下的每个broker都创建topic的队列路由信息,那么我现在这个集群中创建的每个...推荐阅读: 深度解析RocketMQ Topic创建机制 RocketMQ源码分析之路由中心 RocketMQ的消费模式

2.1K11

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic

route info of this topic”异常,win10本地启动同版本的rocketmq release库没有任何问题,搜索了许久仍然没有找到问题,关于这个问题,部分原因在笔者,笔者没有完全按照...引入后导致MQClientInstance实例被提前创建,提前创建使用的是application.yml文件中配置: rocketmq: name-server: 127.0.0.1:9876...导致getAndCreateMQClientInstance过早被创建,所以后续同一clientId不再创建MQClientInstance而使用最初创建的实例!...服务,所以一直报"org.apache.rocketmq.client.exception.MQClientException: No route info of this topic"这个异常,搜索了很多最终都没有解决问题...: No route info of this topic“这个错误 2、引入rocketmq-spring-boot-starter以来时不要使用DefaultMQProducer发送信息

2.7K20

RocketMQ中,Topic(主题)和Queue(队列)有什么区别

RocketMQ中,Topic和Queue是两个非常重要的概念,它们在使用时有以下区别: Topic(主题):Topic是消息的分类,在RocketMQ中,生产者将消息发送到特定的Topic,消费者则从特定的...在RocketMQ中,生产者首先需要创建一个Topic,这个Topic可以看作是一种消息的分类或者标签。然后,RocketMQ会在这个Topic创建多个Queue,用于存储和并发处理消息。...例如,你可以为不同类型的消息创建不同的Topic,然后根据消息的处理需求,为每个Topic创建适当数量的Queue。 问:对于Queue的创建有什么基本准则或要求么?...因为在RocketMQ中,同一个Queue中的消息是有序的,但是不同Queue之间的消息是无序的。也就是说,如果你希望所有的消息都能按照发送的顺序被消费,那么你应该只为Topic创建一个Queue。...如果你的需求是高并发处理能力,那么你应该为Topic创建多个Queue。如果你的需求是消息的顺序消费,那么你应该只为Topic创建一个Queue。

7300
领券