Pom:

<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.10.1.0</version>
</dependency>

JavaCode:

package com;

import kafka.admin.AdminUtils;
import kafka.admin.RackAwareMode;
import kafka.server.ConfigType;
import kafka.utils.ZkUtils;
import org.apache.kafka.common.security.JaasUtils;
import org.junit.Test;
import scala.collection.JavaConversions; import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties; /**
*
*
* 测试kafka Topic CRUD
* @author chenwen
*
*/
public class TestKafkaApi { /**
*
* 创建topic
*/
@Test
public void createTopic() {
ZkUtils zkUtils = ZkUtils.apply("172.16.11.224:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
// 创建一个单分区单副本名为test的topic
AdminUtils.createTopic(zkUtils, "test",
1, // 分区数
1, // 副本数
new Properties(),
RackAwareMode.Enforced$.MODULE$);
zkUtils.close();
} /**
*
* 删除topic
*
*/
@Test
public void deleteTopic() {
ZkUtils zkUtils = ZkUtils.apply("172.16.11.224:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
// 删除topic 'test'
AdminUtils.deleteTopic(zkUtils, "test");
zkUtils.close();
} /**
*
* 查询某个topic的属性
*
*/
@Test
public void query() {
ZkUtils zkUtils = ZkUtils.apply("172.16.11.224:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
// 获取topic 'test'的topic属性属性
Properties props = AdminUtils.fetchEntityConfig(zkUtils, ConfigType.Topic(), "__consumer_offsets");
// 查询topic-level属性
Iterator it = props.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry=(Map.Entry)it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + " = " + value);
}
zkUtils.close();
} /**
*
* 判断某个topic是否存在
*
* @param topicName
*/
@Test
public void topicExists(String topicName) {
ZkUtils zkUtils = ZkUtils.apply("zkHost", 30000, 30000, JaasUtils.isZkSecurityEnabled());
boolean exists = AdminUtils.topicExists(zkUtils,topicName);
} /**
*
* 获取topiclist
*/
@Test
public void getTopicList() {
ZkUtils zkUtils = ZkUtils.apply("zkHost", 30000, 30000, JaasUtils.isZkSecurityEnabled());
List<String> allTopicList = JavaConversions.seqAsJavaList(zkUtils.getAllTopics());
} }

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. Nginx 配置下载附件让浏览器提示用户是否保存

    Nginx配置下载附件让浏览器提示用户是否保存   by:授客  QQ:1033553122   测试环境 nginx-1.10.0 问题描述: 前端页面,IE11浏览器下请求下载附件模板,针对xls ...

  2. Testlink1.9.17使用方法( 第三章 初始配置[配置用户、产品] )

    第三章 初始配置(配置用户.产品) 一. 设置用户 QQ交流群:585499566 在TestLink系统中,每个用户都可以维护自己的私有信息.admin可以创建用户,但不能看到其它用户的密码.在用户 ...

  3. (网页)HTML5 Canvas ( 事件交互, 点击事件为例 ) isPointInPath(转)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. [Python][小知识][NO.2] Python 字符串跨行连接,或拆分为多行显示

    1.前言 又是一个字符串很长,但又是一种格式的小字符串直接连接而成的大字符串. 这么我们拆成多行,即美感,又易于我们修改. 例如 文件选择框中的 通配符: wildcard = "Pytho ...

  5. Python 魔法方法简介

    1.什么是魔法方法? 魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一 ...

  6. JHipster开发环境安装

    本文演示如何在CentOS7上安装Jhipster以及其依赖组件. 这里采用官方推荐的Yarn安装方法,操作系统版本为CentOS 7.4. 1 安装JDK 推荐版本:OpenJDK 1.8.0-64 ...

  7. [20180918]文件格式与sql_id.txt

    [20180918]文件格式与sql_id.txt --//记录测试中遇到的一个问题.这是我在探究SQL*Net more data from client遇到的问题.--//就是实际oracle会把 ...

  8. Vue2 学习笔记3

    文中例子代码请参考github 定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组 ...

  9. Django 2.1.3 文档

    https://blog.csdn.net/lengfengyuyu/article/details/83342553#3_23

  10. ELK 处理 Percona 审计日志(填坑)

    前提 1.有强烈的审计需求. 2.能允许10%-15%左右的性能损失. 3.有强烈的对数据库操作实时查看需求(一般都是为了领导要求). Logstash 比较坑的配置   1 2 3 4 5 6 7 ...