Pom:

  1. <dependency>
  2. <groupId>org.apache.kafka</groupId>
  3. <artifactId>kafka_2.10</artifactId>
  4. <version>0.10.1.0</version>
  5. </dependency>

JavaCode:

  1. package com;
  2.  
  3. import kafka.admin.AdminUtils;
  4. import kafka.admin.RackAwareMode;
  5. import kafka.server.ConfigType;
  6. import kafka.utils.ZkUtils;
  7. import org.apache.kafka.common.security.JaasUtils;
  8. import org.junit.Test;
  9. import scala.collection.JavaConversions;
  10.  
  11. import java.util.Iterator;
  12. import java.util.List;
  13. import java.util.Map;
  14. import java.util.Properties;
  15.  
  16. /**
  17. *
  18. *
  19. * 测试kafka Topic CRUD
  20. * @author chenwen
  21. *
  22. */
  23. public class TestKafkaApi {
  24.  
  25. /**
  26. *
  27. * 创建topic
  28. */
  29. @Test
  30. public void createTopic() {
  31. ZkUtils zkUtils = ZkUtils.apply("172.16.11.224:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
  32. // 创建一个单分区单副本名为test的topic
  33. AdminUtils.createTopic(zkUtils, "test",
  34. 1, // 分区数
  35. 1, // 副本数
  36. new Properties(),
  37. RackAwareMode.Enforced$.MODULE$);
  38. zkUtils.close();
  39. }
  40.  
  41. /**
  42. *
  43. * 删除topic
  44. *
  45. */
  46. @Test
  47. public void deleteTopic() {
  48. ZkUtils zkUtils = ZkUtils.apply("172.16.11.224:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
  49. // 删除topic 'test'
  50. AdminUtils.deleteTopic(zkUtils, "test");
  51. zkUtils.close();
  52. }
  53.  
  54. /**
  55. *
  56. * 查询某个topic的属性
  57. *
  58. */
  59. @Test
  60. public void query() {
  61. ZkUtils zkUtils = ZkUtils.apply("172.16.11.224:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
  62. // 获取topic 'test'的topic属性属性
  63. Properties props = AdminUtils.fetchEntityConfig(zkUtils, ConfigType.Topic(), "__consumer_offsets");
  64. // 查询topic-level属性
  65. Iterator it = props.entrySet().iterator();
  66. while(it.hasNext()){
  67. Map.Entry entry=(Map.Entry)it.next();
  68. Object key = entry.getKey();
  69. Object value = entry.getValue();
  70. System.out.println(key + " = " + value);
  71. }
  72. zkUtils.close();
  73. }
  74.  
  75. /**
  76. *
  77. * 判断某个topic是否存在
  78. *
  79. * @param topicName
  80. */
  81. @Test
  82. public void topicExists(String topicName) {
  83. ZkUtils zkUtils = ZkUtils.apply("zkHost", 30000, 30000, JaasUtils.isZkSecurityEnabled());
  84. boolean exists = AdminUtils.topicExists(zkUtils,topicName);
  85. }
  86.  
  87. /**
  88. *
  89. * 获取topiclist
  90. */
  91. @Test
  92. public void getTopicList() {
  93. ZkUtils zkUtils = ZkUtils.apply("zkHost", 30000, 30000, JaasUtils.isZkSecurityEnabled());
  94. List<String> allTopicList = JavaConversions.seqAsJavaList(zkUtils.getAllTopics());
  95. }
  96.  
  97. }

Kafka Topic Api的更多相关文章

  1. Kafka Consumer API样例

    Kafka Consumer API样例 1. 自动确认Offset 说明参照:http://blog.csdn.net/xianzhen376/article/details/51167333 Pr ...

  2. Kafka消费者APi

    Kafka客户端从集群中消费消息,并透明地处理kafka集群中出现故障服务器,透明地调节适应集群中变化的数据分区.也和服务器交互,平衡均衡消费者. public class KafkaConsumer ...

  3. Kafka(五)Kafka的API操作和拦截器

    一 kafka的API操作 1.1 环境准备 1)在eclipse中创建一个java工程 2)在工程的根目录创建一个lib文件夹 3)解压kafka安装包,将安装包libs目录下的jar包拷贝到工程的 ...

  4. kafka restful api功能介绍与使用

    前述 采用confluent kafka-rest proxy实现kafka restful service时候(具体参考上一篇笔记),通过http协议数据传输,需要注意的是采用了base64编码(或 ...

  5. Kafka笔记整理(二):Kafka Java API使用

    下面的测试代码使用的都是下面的topic: $ kafka-topics.sh --describe hadoop --zookeeper uplooking01:,uplooking02:,uplo ...

  6. 《Kafka笔记》3、Kafka高级API

    目录 1 Kafka高级API特性 1.1 Offset的自动控制 1.1.1 消费者offset初始策略 1.1.2 消费者offset自动提交策略 1.2 Acks & Retries(应 ...

  7. Kafka之 API实战

    Kafka之 API实战 一.环境准备 1)启动zk和kafka集群,在kafka集群中打开一个消费者 [hadoop1 kafka]$ bin/kafka-console-consumer.sh \ ...

  8. Kafka Topic Partition Replica Assignment实现原理及资源隔离方案

    本文共分为三个部分:   Kafka Topic创建方式 Kafka Topic Partitions Assignment实现原理 Kafka资源隔离方案   1. Kafka Topic创建方式 ...

  9. Exception in thread "main" org.I0Itec.zkclient.exception.ZkAuthFailedException: Authentication failure is thrown while creating kafka topic

    Exception in thread "main" org.I0Itec.zkclient.exception.ZkAuthFailedException: Authentica ...

随机推荐

  1. Future FutrueTask Callable类源码说明以及原理使用

    1.Future Callable FutureTask 源码说明 JDK内置的Future主要使用到了Callable接口和FutureTask类. Callable是类似于Runnable的接口, ...

  2. Android为TV端助力 遥控器的映射

    第一编写kl文件时先在盒子上输入getevent -v查看设备信息,设备信息里有vendor.product.version, 假如分别是xxxx,yyyy,zzzz,那么你的文件名就要命名为Vend ...

  3. 自己动手写Android插件化框架,让老板对你刮目相看

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由达文西发表于云+社区专栏 最近在工作中接触到了Android插件内的开发,发现自己这种技术还缺乏最基本的了解,以至于在一些基本问题上浪 ...

  4. git 入门教程之知识速查

    知识速查 创建版本库 初始化项目 git init 从零开始创建项目 示例 git init 克隆项目 git clone 将已有项目拷贝到本地 示例 git clone git@github.com ...

  5. 修改minifest使桌面软件支持高dpi

    在VisualStudio中可以很方便的设置manifest以支持高dpi的用户界面.当然也可以手工修改manifest文件来添加对高dpi的支持. QQ在高dpi方面做的尤其差,对高dpi的支持迟迟 ...

  6. [20181007]12cR2 Using SQL Patch 2.txt

    [20181007]12cR2 Using SQL Patch 2.txt --//12cR2 已经把sql打补丁集成进入dbms_sqldiag,不是11g的 DBMS_SQLDIAG_INTERN ...

  7. C#-结构体(十)

    结构体概念 在C#中,结构体是值类型,一般适用于表示类似Point.Rectangle.Color的对象 值类型能够降低对堆的管理.使用.降低垃圾回收,表现出更好的性能.可是值类型也有不好的一面.会涉 ...

  8. c# 建立到数据源的连接 以及获取项目配置文件的属性

    两种连接数据库的写法: <connectionStrings> <add name="HRModelsContainer" connectionString=&q ...

  9. 几种方法来实现scp拷贝时无需输入密码

    欢迎转载!转载时请注明出处:http://blog.csdn.net/nfer_zhuang/article/details/42646849 前言 我在工作中经常要将一些文件传输到另外一个服务器上, ...

  10. cURL模拟POST提交数据

    首先,是这个代码: <?php //curl模拟post提交数据$url = "http://127.0.0.1/immoc/output.php";$post_data = ...