命令行主类:org.apache.rocketmq.tools.command.MQAdminStartup

客户端创建 topic

程序参数:
updateTopic -n localhost:9876 -c DefaultCluster -t topic-zhang

org.apache.rocketmq.tools.command.topic.UpdateTopicSubCommand#execute
创建 topic 步骤:
1. 从 nameserver 获取当前集群的 master broker

2. 向 master 发送请求,创建 topic

3. broker 利用 registerBroker 同步新建的 topic 到 nameserver
broker 发送请求:org.apache.rocketmq.broker.BrokerController#registerIncrementBrokerData

客户端删除 topic

程序参数:
deleteTopic -n localhost:9876 -c DefaultCluster -t topic-zhang

org.apache.rocketmq.tools.command.topic.DeleteTopicSubCommand#deleteTopic
删除 topic 步骤:
1. client 从 nameserver 获取 broker 列表

2. 向 broker 发送请求,删除 broker 中的 topic
broker 删除 topic
org.apache.rocketmq.broker.topic.TopicConfigManager#deleteTopicConfig

3. 向 nameserver 发送请求, 删除 nameserver 中的 topic

同时,broker 和 nameserver 之间有定时的 registerBroker,10s 一次:

org.apache.rocketmq.broker.BrokerController#start

  1. this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
  2.  
  3. @Override
  4. public void run() {
  5. try {
  6. BrokerController.this.registerBrokerAll(true, false, brokerConfig.isForceRegister());
  7. } catch (Throwable e) {
  8. log.error("registerBrokerAll Exception", e);
  9. }
  10. }
  11. }, 1000 * 10, Math.max(10000, Math.min(brokerConfig.getRegisterNameServerPeriod(), 60000)), TimeUnit.MILLISECONDS);

org.apache.rocketmq.namesrv.NamesrvController#initialize

  1. this.scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
  2.  
  3. @Override
  4. public void run() {
  5. NamesrvController.this.routeInfoManager.scanNotActiveBroker();
  6. }
  7. }, 5, 10, TimeUnit.SECONDS);

RocketMQ 创建和删除 topic,以及 broker 和 nameserver 之间的心跳的更多相关文章

  1. kafka入门2:java 创建及删除 topic

    1.pom <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.1 ...

  2. [Spark][kafka]kafka 的topic 创建和删除试验

    kafka 的topic 创建和删除试验 zookeeper和kafka 的安装,参考: http://www.cnblogs.com/caoguo/p/5958608.html 参考上述URL后,在 ...

  3. kafka删除topic后再创建同名的topic报错(ERROR org.apache.kafka.common.errors.TopicExistsException)

    [hadoop@datanode3 logs]$ kafka-topics.sh --delete --zookeeper datanode1:2181 --topic firstTopic firs ...

  4. kafka2.x常用命令笔记(一)创建topic,查看topic列表、分区、副本详情,删除topic,测试topic发送与消费

    接触kafka开发已经两年多,也看过关于kafka的一些书,但一直没有怎么对它做总结,借着最近正好在看<Apache Kafka实战>一书,同时自己又搭建了三台kafka服务器,正好可以做 ...

  5. Kafka0.8.2.1删除topic逻辑

    前提条件: 在启动broker时候开启删除topic的开关,即在server.properties中添加:  delete.topic.enable=true 命令: bin/kafka-topics ...

  6. kafka删除topic的方法及我在kafka上边的一些经验

    我在本地做kafka的producer调试,每隔一段时间后,所使用的topic管道就会堆积数据,而且我这边使用的是  kafka   bin 下的consumer命令单独消费的,每次都是  --fro ...

  7. Kafka如何彻底删除topic及数据

    前言:删除kafka topic及其数据,严格来说并不是很难的操作.但是,往往给kafka 使用者带来诸多问题.项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况.本文总结多个删 ...

  8. Kafka如何删除topic?

    Kafka如何删除topic? 今天为大家带来“Kafka删除topic原理解析”,希望可以帮到那些苦于无法删除topic的朋友们. 前提条件: 在启动broker时候开启删除topic的开关,即在s ...

  9. kafka删除topic详解

    1.删除topic命令 bin/kafka-topics.sh --delete --zookeeper 192.168.242.131:2181 --topic aaa 注:此命令如果要生效,还需在 ...

随机推荐

  1. Python中函数传递参数有四种形式

    Python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...

  2. 根据日志来源的不同生成不同的index索引

    使用filebeat收集系统日志,不同应用的日志,然后把这些日志传输给Logstash,再然后交由elasticsearch处理,那么如何区分不同的日志来源呢? filebeat.yml配置文件中不启 ...

  3. java的idea项目文件夹合并,怎么分开

    一,如下图所示 二,只需要将这个去掉

  4. Runnable、Callable和Future三者对比

    Runnable是个借口,使用简单: 1. 实现该接口并重写run方法 2. 利用该类的对象创建线程 3. 线程启动时就会自动调用该对象的run方法     通常在开发中结合ExecutorServi ...

  5. java中构造器(Constructor)

    大部分内容转自:http://tech.it168.com/j/2006-05-18/200605181021879.shtml        构造器是一个创建对象时被自动调用的特殊方法,为的是初始化 ...

  6. SPSS 23下载安装和激活

    目录 1. 其他版本 2. 安装教程 3. 下载地址 1. 其他版本 参考:https://www.cnblogs.com/coco56/p/11648399.html 2. 安装教程 SPSS 23 ...

  7. 负载均衡的3种模型(httpd+lvs几十万并发的负载均衡搭建)

    一.几种常见的负载均衡模型 二.搭建httpd+lvs LVS .node01 启动一块eth0:2的网卡子接口(ifconfig eth0: down可以把网卡down掉) ifconfig eth ...

  8. 实现自己的BeanFactory、AOP以及声明式事务

    实现自己的BeanFactory                                                                   在使用spring时,我们很少用& ...

  9. Peakvue和自相关技术轴承诊断

    什么是应力波 应力波产生于“金属与金属相互碰撞的事件” 加速度传感器捕捉含有具有短时特性应力波的轴承振动信号 应力波是一种非常短暂的连续的脉冲信号, 通常在百万分之一秒到千分之一秒的区间范围内, 它是 ...

  10. ubuntu(linux)如何安装nginx?

    之前要在linux下面安装nginx,弄了半天,终于搞定了,下面给大家详细一下安装流程及安装报错解决方案: 安装共分为5步搞定: 1.进入src目录(下载存放目录)      cd /usr/loca ...