• 主题管理


    1、创建主题

      kafka提供了两种方式创建主题

        1):若代理设置了 auto.create.topics.enable=true,该配置默认值是true,当生产者向一个还未创建的主题发送一个消息,会自动创建一个拥有 ${num.partitions} 个分区和 ${default.replication.factor} 个副本的主题。

        2):客户端通过执行 kafka-topics.sh 脚本创建一个主题。

          创建一个名称为"kafka-action"、拥有2个副本和3个分区的主题:kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factory 2 --partitions 3 --topic kafka-action

          --bootstrap-server 参数是指kafka的broker的地址;

          --replication-factory 参数是指副本数,副本会被分布在不同的节点上,副本的数量不能超过节点数;

          --partitions 参数是指主题的分区数,kafka通过分区策略,将一个主题的消息分散到多个分区并分别保存到不同的代理上,以此来提高消息处理的吞吐量。

          创建主题的时候可以通过config参数来设置主题级别的配置以覆盖默认配置,可以设置多组配置,如:--config config-name1=value1 --config config-name2=value2

    2、删除主题

      删除 kafka 主题,一般有两种方式:

        1):手动删除各节点 ${log.dir} 目录下该主题分区文件夹,同时登陆zookeeper客户端删除待删除主题对应的节点,主题元数据保存在 /brokers/topics 和 /config/topics 目录下;

        2):执行 kafka-topics..sh 脚本进行删除,若希望通过该脚本触底删除主题,需要保证在启动kafka服务时加载的server.properties文件中配置的 delete.topic.enable=true,默认值是false;否则执行该脚本并未真正删除主题,只是在 zookeeper的 /admin/delete_topics 目录下创建了一个与待删除主题同名的节点,将该主题标记为删除状态。

          kafka-topics --delete --bootstrap-server localhost:9092 --topic kafka-action

    3、查看主题

      kafka 提供了 list 和 describe 两个命令查看主题信息,其中 list 参数列出 kafka 所有的主题名,describe 参数可以查看所有主题或某个特定主题的信息;

      查看所有主题:kafka-topics.sh --list --bootstrap-server localhost:9092

      查看某个特定主题: kafka-topics.sh --describe --bootstrap-server localhost:9092 或者 kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic kafka-action

      查看正在同步的主题:

        处于 under replicatied 状态的主题可能正在进行同步操作,也有可能同步发生了异常,即此时查询到的主题分区的ISR列表长度小于AR列表长度。

        命令: kafka-topics.sh --describe --bootstrap-server localhost:9092 --under-replicated-partitions

      查询没有Leader的分区;

        命令: kafka-topics.sh --describe --bootstrap-server localhost:9092 --unavailable-partitions

        通过指定 topic 参数,可以查询特定主题的哪些分区的Leader不可用了。

      查看主题覆盖了哪些默认配置:

        命令: kafka-topics.sh --describe --bootstrap-server localhost:9092 --topics-with-overrides

        查看某个特定主题覆盖了哪些默认配置:kafka-topics.sh --describe --bootstrap-server localhost:9092 --topics-with-overrides --topic kafka-action

      

  • 相关阅读:
    权限控制
    包(package)
    this和super关键字
    成员变量的隐藏和方法重写(覆盖)
    转--htaccess语法教程 apache服务器伪静态规则教程
    转---高并发Web服务的演变——节约系统内存和CPU
    MYSQL 分表实践
    MySql主从配置实践及其优势浅谈
    一位IT牛人的十年经验之谈
    最近对Memcache的一些学习
  • 原文地址:https://www.cnblogs.com/super-jing/p/11091205.html
Copyright © 2020-2023  润新知