kafka java获取topic_kafka系列六、java管理kafka Topic

packagecom.example.demo.topic;importkafka.admin.AdminUtils;importkafka.admin.RackAwareMode;importkafka.server.ConfigType;importkafka.utils.ZkUtils;importorg.apache.kafka.common.requests.MetadataResponse;importorg.apache.kafka.common.security.JaasUtils;importscala.collection.JavaConversions;importjava.util.List;importjava.util.Map;importjava.util.Properties;public classKafkaTopic {public static voidmain(String[] args) {//createTopic();//deleteTopic();//listAllTopic();//getTopic();

listTopicAllConfig();

}/*** 创建主题

* kafka-topics.sh --zookeeper localhost:2181 --create --topic kafka-action --replication-factor 2 --partitions 3*/

private static voidcreateTopic() {

ZkUtils zkUtils= ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());//创建一个单分区单副本名为t1的topic

AdminUtils.createTopic(zkUtils, "topic-20", 3, 1, newProperties(), RackAwareMode.Enforced$.MODULE$);

zkUtils.close();

}/*** 除某主题

* kafka-topics.sh --zookeeper localhost:2181 --topic kafka-action --delete*/

private static voiddeleteTopic() {

ZkUtils zkUtils= ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());//删除topic 't1'

AdminUtils.deleteTopic(zkUtils, "topic-19");

zkUtils.close();

}/*** 修改主题配置 kafka-config --zookeeper localhost:2181 --entity-type topics --entity-name kafka-action

* --alter --add-config max.message.bytes=202480 --alter --delete-config flush.messages*/

private static voidupdateTopic() {

ZkUtils zkUtils= ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());

Properties props= AdminUtils.fetchEntityConfig(zkUtils, ConfigType.Topic(), "topic-19");//增加topic级别属性

props.put("min.cleanable.dirty.ratio", "0.3");//删除topic级别属性

props.remove("max.message.bytes");//修改topic 'test'的属性

AdminUtils.changeTopicConfig(zkUtils, "test", props);

zkUtils.close();

}/***

* 查看所有主题 kafka-topics.sh --zookeeper localhost:2181 --list*/

public static voidlistAllTopic() {

ZkUtils zkUtils= null;try{

zkUtils= ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());

List topics =JavaConversions.seqAsJavaList(zkUtils.getAllTopics());

topics.forEach(System.out::println);

}catch(Exception e) {

e.printStackTrace();

}finally{if (zkUtils != null) {

zkUtils.close();

}

}

}/*** 得到所有topic的配置信息 kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --describe*/

public static voidlistTopicAllConfig() {

ZkUtils zkUtils= null;try{

zkUtils= ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());

Map configs =JavaConversions.mapAsJavaMap(AdminUtils.fetchAllTopicConfigs(zkUtils));//获取特定topic的元数据

MetadataResponse.TopicMetadata topicMetadata = AdminUtils.fetchTopicMetadataFromZk("topic-19",zkUtils);//获取特定topic的配置信息

Properties properties = AdminUtils.fetchEntityConfig(zkUtils,"topics","kafka-test");for (Map.Entryentry : configs.entrySet()) {

System.out.println("key=" + entry.getKey() + " ;value= " +entry.getValue());

}

}catch(Exception e) {

e.printStackTrace();

}finally{if (zkUtils != null) {

zkUtils.close();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值