返回顶部
首页 > 资讯 > 精选 >Kafka之kafka-topics.sh如何使用
  • 632
分享到

Kafka之kafka-topics.sh如何使用

2023-07-05 10:07:14 632人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“kafka之kafka-topics.sh如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka之kafka-topics.sh如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知

本文小编为大家详细介绍“kafka之kafka-topics.sh如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka之kafka-topics.sh如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、kafka的基本操作

1.1、创建topic

sh kafka-topics.sh --create --ZooKeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

参数说明:

  • –create 是创建主题的的动作指令。

  • –zookeeper 指定kafka所连接的zookeeper服务地址。

  • –replicator-factor 指定了副本因子(即副本数量); 表示该topic需要在不同的broker中保存几份,这里设置成1,表示在两个broker中保存两份Partitions分区数。

  • –partitions 指定分区个数;多通道,类似车道。

  • –topic 指定所要创建主题的名称,比如test。

成功则显示:

Created topic "test".

1.2、查看topic

sh kafka-topics.sh --list --zookeeper localhost:2181

显示:

test

1.3、查看topic属性

sh kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

显示:

Topic:test    PartitionCount:1    ReplicationFactor:1    Configs:    Topic: test    Partition: 0    Leader: 0    Replicas: 0    Isr: 0

1.4、发送消息

sh kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

发送端输入:

>hello>where are you>let's Go

1.5、消费消息

sh kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test--from-beginning

消费端显示:

hellowhere are youlet's go^CProcessed a total of 3 messages

二、kafka-topics.sh 使用方式

创建、修改、删除以及查看等功能。

2.1、查看帮助

/bin目录下的每一个脚本工具,都有着众多的参数选项,不可能所有命令都记得住,这些脚本都可以使用 --help 参数来打印列出其所需的参数信息。

$ sh kafka-topics.sh --helpCommand must include exactly one action: --list, --describe, --create, --alter or --deleteOption                                   Description                            ------                                   -----------                            --alter                                  Alter the number of partitions,                                                   replica assignment, and/or                                                      configuration for the topic.         --config <String: name=value>            A topic configuration override for the                                            topic being created or altered.The                                              following is a list of valid                                                    configurations:                                                                   cleanup.policy                                                                     compression.type                                                                   delete.retention.ms                                                                file.delete.delay.ms                                                               flush.messages                                                                     flush.ms                                                                           follower.replication.throttled.                                                  replicas                                                                          index.interval.bytes                                                               leader.replication.throttled.replicas                                              max.message.bytes                                                                  message.downconversion.enable                                                      message.fORMat.version                                                             message.timestamp.difference.max.ms                                                message.timestamp.type                                                             min.cleanable.dirty.ratio                                                          min.compaction.lag.ms                                                              min.insync.replicas                                                                preallocate                                                                        retention.bytes                                                                    retention.ms                                                                       segment.bytes                                                                      segment.index.bytes                                                                segment.jitter.ms                                                                  segment.ms                                                                         unclean.leader.election.enable                                                 See the Kafka documentation for full                                              details on the topic configs.        --create                                 Create a new topic.                    --delete                                 Delete a topic                         --delete-config <String: name>           A topic configuration override to be                                              removed for an existing topic (see                                              the list of configurations under the                                            --config option).                    --describe                               List details for the given topics.     --disable-rack-aware                     Disable rack aware replica assignment  --force                                  Suppress console prompts               --help                                   Print usage information.               --if-exists                              if set when altering or deleting                                                  topics, the action will only execute                                            if the topic exists                  --if-not-exists                          if set when creating topics, the                                                  action will only execute if the                                                 topic does not already exist         --list                                   List all available topics.             --partitions <Integer: # of partitions>  The number of partitions for the topic                                            being created or altered (WARNING:                                              If partitions are increased for a                                               topic that has a key, the partition                                             logic or ordering of the messages                                               will be affected                     --replica-assignment <String:            A list of manual partition-to-broker     broker_id_for_part1_replica1 :           assignments for the topic being        broker_id_for_part1_replica2 ,           created or altered.                    broker_id_for_part2_replica1 :                                                  broker_id_for_part2_replica2 , ...>                                           --replication-factor <Integer:           The replication factor for each          replication factor>                      partition in the topic being created.--topic <String: topic>                  The topic to be create, alter or                                                  describe. Can also accept a regular                                             expression except for --create option--topics-with-overrides                  if set when describing topics, only                                               show topics that have overridden                                                configs                              --unavailable-partitions                 if set when describing topics, only                                               show partitions whose leader is not                                             available                            --under-replicated-partitions            if set when describing topics, only                                               show under replicated partitions     --zookeeper <String: hosts>              REQUIRED: The connection string for                                               the zookeeper connection in the form                                            host:port. Multiple hosts can be                                                given to allow fail-over.

2.2、副本数量规则

副本数量不能大于broker的数量。

kafka 创建主题的时候其副本数量不能大于broker的数量,否则创建主题 topic 失败。

sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 1 --topic test1

报错:

Error while executing topic command : Replication factor: 2 larger than available brokers: 1.
[2022-11-24 14:08:18,745] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 2 larger than available brokers: 1.
 (kafka.admin.TopicCommand$)

注意:副本数量和分区数量的区别。

2.3、创建主题

创建主题时候,有3个参数是必填的:

  • &ndash;partitions(分区数量)、

  • &ndash;topic(主题名) 、

  • &ndash;replication-factor(复制系数),

同时还需使用 --create 参数表明本次操作是想要创建一个主题操作。

sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test1

返回显示:

Created topic "test1".

另外在创建主题的时候,还可以附加以下两个选项:&ndash;if-not-exists 和 --if-exists . 第一个参数表明仅当该主题不存在时候,创建; 第二个参数表明当修改或删除这个主题时候,仅在该主题存在的时候去执行操作。

2.4、查看broker上所有的主题

&ndash;list。

sh kafka-topics.sh --list --zookeeper localhost:2181

结果显示:

__consumer_offsets
test
test1

2.5、查看指定主题 topic 的详细信息

&ndash;describe。

sh kafka-topics.sh --describe --zookeeper localhost:2181 --topic test1

结果显示:

Topic:test1    PartitionCount:1    ReplicationFactor:1    Configs:
    Topic: test1    Partition: 0    Leader: 0    Replicas: 0    Isr: 0

2.6、修改主题信息之增加主题分区数量

&ndash;alter。

sh kafka-topics.sh --zookeeper localhost:2181 --topic test1 --alter --partitions 2

结果显示:

WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected
Adding partitions succeeded!

查看主题信息:

sh kafka-topics.sh --describe --zookeeper localhost:2181 --topic test1

可以看到已经成功的将主题的分区数量从1修改为了2。

Topic:test1    PartitionCount:2    ReplicationFactor:1    Configs:    Topic: test1    Partition: 0    Leader: 0    Replicas: 0    Isr: 0    Topic: test1    Partition: 1    Leader: 0    Replicas: 0    Isr: 0

当去修改一个不存在的topic信息时(比如修改主题 test2,当前这主题是不存在的)。

sh kafka-topics.sh --zookeeper localhost:2181 --topic test2 --alter --partitions 2

会报错:

Error while executing topic command : Topic test2 does not exist on ZK path localhost:2181
[2022-11-24 14:21:33,564] ERROR java.lang.IllegalArgumentException: Topic test2 does not exist on ZK path localhost:2181
    at kafka.admin.TopicCommand$.alterTopic(TopicCommand.Scala:123)
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:65)
    at kafka.admin.TopicCommand.main(TopicCommand.scala)
 (kafka.admin.TopicCommand$)

注意:不要使用 --alter 去尝试减少分区的数量,如果非要减少分区的数量,只能删除整个主题 topic, 然后重新创建。

2.7、删除主题

&ndash;delete。

sh kafka-topics.sh --zookeeper localhost:2181 --delete --topic test1

日志信息提示,主题 test1已经被标记删除状态,但是若delete.topic.enable 没有设置为 true , 则将不会有任何作用。

Topic test1 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

可以测试一些:

# 一个终端启动生产者:sh kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test1# 另一个终端启动消费者:sh kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test1--from-beginning

发现此时还是可以发送消息和接收消息。如果要支持能够删除主题的操作,则需要在 /bin 的同级目录 /config目录下的文件server.properties中,修改配置delete.topic.enable=true(如果置为false,则kafka broker 是不允许删除主题的)。

然后就重启kafka:

# 停止:sh kafka-server-stop.sh -daemon ../config/server.properties# 启动:sh kafka-server-start.sh -daemon ../config/server.properties

再次删除就可以了。

sh kafka-topics.sh --zookeeper localhost:2181 --delete --topic test1

读到这里,这篇“Kafka之kafka-topics.sh如何使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Kafka之kafka-topics.sh如何使用

本文链接: https://lsjlt.com/news/350976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Kafka之kafka-topics.sh如何使用
    本文小编为大家详细介绍“Kafka之kafka-topics.sh如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Kafka之kafka-topics.sh如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
  • Kafka之kafka-topics.sh的使用解读
    目录一、kafka的基本操作1.1、创建topic1.2、查看topic1.3、查看topic属性1.4、发送消息1.5、消费消息二、kafka-topics.sh 使用方式2.1、...
    99+
    2023-03-07
    Kafka kafka-topics.sh kafka-topics.sh的使用 使用kafka-topics.sh
  • Kafka常用命令之kafka-console-consumer.sh怎么使用
    今天小编给大家分享一下Kafka常用命令之kafka-console-consumer.sh怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面...
    99+
    2023-07-05
  • 【Kafka】Kafka Stream简单使用
    一、实时流式计算 1. 概念 一般流式计算会与批量计算相比较。在流式计算模型中,输入是持续的,可以认为在时间上是无界的,也就意味着,永远拿不到全量数据去做计算。同时,计算结果是持续输出的,也即计算结果在时间上也是无界的。流式计算一般对实...
    99+
    2023-08-30
    java kafka 微服务 Kafka Stream 实时流式计算
  • java中Kafka如何使用
    这篇文章将为大家详细讲解有关java中Kafka如何使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言官方文档:http://kafka.apache.org/中文文档:https://kafka.a...
    99+
    2023-06-25
  • spring kafka @KafkaListener如何使用
    今天小编给大家分享一下spring kafka @KafkaListener如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,...
    99+
    2023-07-05
  • Kafka常用命令之kafka-console-consumer.sh解读
    目录kafka-console-consumer.sh解读消息消费从开始位置消费显示key消费总结kafka-console-consumer.sh解读 kafka-console-...
    99+
    2023-03-07
    Kafka常用命令 Kafka命令 kafka-console-consumer.sh
  • php使用kafka
    安装扩展 生产者生产消息 $rk  = new \RdKafka\Producer(); $rk->addBrokers("localhost:9092"); //kafka服务器地址 self::$producer = $rk; $top...
    99+
    2023-09-03
    php kafka 开发语言
  • 使用kafka如何选择分区数及kafka性能测试
    kafka选择分区数及kafka性能测试 1、简言 ​ 如何选择合适的分区,这是我们经常面临的问题,不过针对这个问题,在网上并没有搜到固定的答案。因此,今天在这里主要通过...
    99+
    2024-04-02
  • 如何使用Scala开发Apache Kafka
    本篇内容介绍了“如何使用Scala开发Apache Kafka”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Apache Kafka是一个广...
    99+
    2023-06-02
  • Storm与Kafka之间如何集成
    Storm与Kafka之间可以通过Kafka Spout来实现集成。Kafka Spout是一个Storm的插件,可用于从Kafka...
    99+
    2024-04-02
  • 带你玩转Kafka之初步使用
    目录前言1 简单介绍2 下载安装3 基本使用 3.1 启动Kafka3.2 简单测试使用3.3 搭建多代理集群 3.3.1 开始搭建3.3.2 使用3.3.3 验证容错性4 小总结总...
    99+
    2024-04-02
  • 如何使用docker搭建kafka环境
    这篇文章主要介绍“如何使用docker搭建kafka环境”,在日常操作中,相信很多人在如何使用docker搭建kafka环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用docker搭建kafka环境...
    99+
    2023-06-19
  • 如何将Golang和Kafka结合使用
    Kafka是一个开源的分布式消息队列,在大数据应用中常常被用于构建实时数据流处理应用。而Golang则是Google开发的一种编程语言,以其高效的并发性、强大的库和生态系统而闻名。那么,如何使用Golang与Kafka进行结合呢?首先,我们...
    99+
    2023-05-14
  • 使用 Python 操作 Kafka
    使用 Python 操作 Kafka Apache Kafka 是一个分布式的流处理平台,它具有高吞吐量、可扩展性和持久性的特点。通过使用 Python 的 kafka-python 模块,我们可以方...
    99+
    2023-09-26
    python kafka 开发语言
  • PHP Kafka 使用详解
    一 安装PHP扩展 1 rdkafka 安装需要依赖 librdkafka , 所以先安装 librdkafka 自定义目录 下载扩展并且安装 git clone https://github.com...
    99+
    2023-08-31
    kafka php linux
  • 如何进行kafka的安装和使用
    这篇文章将为大家详细讲解有关如何进行kafka的安装和使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.       kafk...
    99+
    2023-06-04
  • 使用 kafka-go 在 Kafka 中计划创建消费者
    编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《使用 kafka-go 在 Ka...
    99+
    2024-04-05
  • 如何安装php+kafka
    这篇文章给大家分享的是有关如何安装php+kafka的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、 安装java,并设置相关的环境变量> wget https://download....
    99+
    2023-06-20
  • kafka该如何入门
    kafka该如何入门,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。背景:当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作