使用Kafka的同学都知道,我们每次创建Kafka主题(Topic)的时候可以指定分区数和副本数等信息,如果将这些属性配置到server.properties文件中,以后调用Java API生成的主题将使用默认值,先改变需要使用命令bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic my-topic --config max.message.bytes=128000显示的修改,我们也希望将此过程在Producer调用之前通过API的方式进行设定,无需在之前或之后使用脚本进行操作,所以才了这篇文章。查看源码发现,其实内部所有的实现都是通过TopicCommand的main方法,在此记录两种方式:

1、创建主题(Topic)

【命令方式】:bin/kafka-topics.sh --zookeeper zk_host:port/chroot --create --topic my_topic_name --partitions 20 --replication-factor 3 --config x=y

【JAVA API方式】:

  1. String[] options = new String[]{
  2. "--create",
  3. "--zookeeper",
  4. "zk_host:port/chroot",
  5. "--partitions",
  6. "20",
  7. "--topic",
  8. "my_topic_name",
  9. "--replication-factor",
  10. "3",
  11. "--config",
  12. "x=y"
  13. };
  14. TopicCommand.main(options);

2、查看所有主题

【命令方式】:bin/kafka-topics.sh --list --zookeeper localhost:2181

【JAVA API方式】:

  1. String[] options = new String[]{
  2. "--list",
  3. "--zookeeper",
  4. "localhost:2181"
  5. };
  6. TopicCommand.main(options);

3、查看指定主题:

【命令方式】:bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

【JAVA API方式】:

  1. String[] options = new String[]{
  2. "--describe",
  3. "--zookeeper",
  4. "localhost:2181",
  5. "--topic",
  6. "my-replicated-topic",
  7. };
  8. TopicCommand.main(options);

4、修改主题:

【命令方式】:bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --deleteConfig x
【JAVA API方式】:

  1. String[] options = new String[]{
  2. "--alter",
  3. "--zookeeper",
  4. "zk_host:port/chroot",
  5. "--topic",
  6. "my_topic_name",
  7. "--deleteConfig",
  8. "x"
  9. };
  10. TopicCommand.main(options);

5、删除出题:

【命令方式】:无

【JAVA API方式】:

    1. String[] options = new String[]{
    2. "--zookeeper",
    3. "zk_host:port/chroot",
    4. "--topic",
    5. "my_topic_name"
    6. };
    7. DeleteTopicCommand.main(options);

使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)的更多相关文章

  1. 05Microsoft SQL Server 表创建,查看,修改及删除

    Microsoft SQL Server 表创建,查看,修改及删除 创建表 创建普通表 use 数据库名称 go create table 表名称( 列1 ) not null, 列2 ) not n ...

  2. Zookeeper通过java创建、查看、修改、删除znode

    本章主要介绍zookeeper如何使用,其实通过zkCli.cmd我们是可以执行一些操作的:声明:参考及转自<http://www.blogjava.net/BucketLi/archive/2 ...

  3. Elastic Search Java Api 创建索引结构,添加索引

    创建TCP客户端 Client client = new TransportClient() .addTransportAddress(new InetSocketTransportAddress( ...

  4. mysql表的创建、查看、修改、删除

    一.创建表 创建表前先使用use 数据库名进入某一个数据库,创建表语句的格式如下: create table 表名称 ( 列名1 列的数据类型 [约束], 列名2 列的数据类型 [约束], 列名2 列 ...

  5. mysql数据库创建、查看、修改、删除

    一.创建数据库 使用默认字符集 不指定字符集时,mysql使用默字符集,从mysql8.0开始,默认字符集改为utf8mb4 ,创建数据库的命令为create database 数据库名称. #创建数 ...

  6. ES 08 - 创建、查看、修改、删除、关闭Elasticsearch的index

    目录 1 创建index(配置mapping[映射]) 2 查看index 3 修改index 4 删除index 5 打开/关闭index 6 常见问题及解决方法 index相当于RDBMS(关系型 ...

  7. Elasticsearch的CRUD:REST与Java API

    CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建.查询.更改.删除,俗称"增删改查".Elasticsearch ...

  8. 【hadoop2.6.0】利用Hadoop的 Java API

    Hadoop2.6.0的所有Java API都在 http://hadoop.apache.org/docs/r2.6.0/api/overview-summary.html 里. 下面实现一个利用J ...

  9. ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程

    前言 在上一篇中介绍了ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解,本篇文章就来讲解下 ElasticSearch 6.x官方Java API的 ...

随机推荐

  1. eclipse 自动 注释

    在使用Eclipse 编写Java代码时,自动生成的注释信息都是按照预先设置好的格式生成的. 修改作者.日期注释格式:打开Windows->Preferences->Java->Co ...

  2. Sqli-labs less 16

    Less-16 本关我们的处理方法和less15是一样的,同样的使用延时注入的方法进行解决.这里直接从源代码中看到对id进行 ("id")的处理.(请自行测试) 提交的payloa ...

  3. Delphi托盘类 收集

    收集的两个托盘程序: 1. 托盘区就是在windows的状态栏下方显示时钟.输入法状态的地方, 要把你的程序显示在托盘区: 下面是一个托盘类,只要把下面粘贴到文本文件中,改成TrayIcon.pas, ...

  4. CSS Devices可以让你在线直接获取使用CSS写的Mobile外形。

    CSS Devices可以让你在线直接获取使用CSS写的Mobile外形. CSS Devices 彩蛋爆料直击现场

  5. java基础知识回顾之javaIO类---InputStreamReader和OutputStreamWriter转化流

    InputStreamReader:是字节流通向字符流的桥梁: OutputStreamWriter 是字符流通向字节流的桥梁: package com.lp.ecjtu; import java.i ...

  6. ExtJs之Ext.util.TextMetrics

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  7. HDU5568/BestCoder Round #63 (div.2) B.sequence2 dp+高精度

    sequence2 Problem Description Given an integer array bi with a length of n, please tell me how many ...

  8. JDBC第三次学习

    这是我的JDBC第三次学习了,在学习的过程中,老是会忘掉一些知识,不记下笔记实在不行啊! 使用JDBC调用存储过程 (1)关于如何使用Navicat(11.1.13) for MySQL如何创建存储过 ...

  9. 【HDU 5030】Rabbit's String (二分+后缀数组)

    Rabbit's String Problem Description Long long ago, there lived a lot of rabbits in the forest. One d ...

  10. lintcode:带环链表

    带环链表 给定一个链表,判断它是否有环. 解题 定义两个指针p1 p2 p1每次向前走一步 p2每次向前走两步 当p2能赶上p1的时候说明有环 /** * Definition for ListNod ...