kafka系列六、java管理kafka Topic
- package com.example.demo.topic;
- import kafka.admin.AdminUtils;
- import kafka.admin.RackAwareMode;
- import kafka.server.ConfigType;
- import kafka.utils.ZkUtils;
- import org.apache.kafka.common.requests.MetadataResponse;
- import org.apache.kafka.common.security.JaasUtils;
- import scala.collection.JavaConversions;
- import java.util.List;
- import java.util.Map;
- import java.util.Properties;
- public class KafkaTopic {
- public static void main(String[] args) {
- //createTopic();
- //deleteTopic();
- //listAllTopic();
- // getTopic();
- listTopicAllConfig();
- }
- /**
- * 创建主题
- * kafka-topics.sh --zookeeper localhost:2181 --create --topic kafka-action --replication-factor 2 --partitions 3
- */
- private static void createTopic() {
- ZkUtils zkUtils = ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
- // 创建一个单分区单副本名为t1的topic
- AdminUtils.createTopic(zkUtils, "topic-20", 3, 1, new Properties(), RackAwareMode.Enforced$.MODULE$);
- zkUtils.close();
- }
- /**
- * 除某主题
- * kafka-topics.sh --zookeeper localhost:2181 --topic kafka-action --delete
- */
- private static void deleteTopic() {
- 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 void updateTopic() {
- 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 void listAllTopic() {
- ZkUtils zkUtils = null;
- try {
- zkUtils = ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
- List<String> 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 void listTopicAllConfig() {
- ZkUtils zkUtils = null;
- try {
- zkUtils = ZkUtils.apply("47.52.199.51:2181", 30000, 30000, JaasUtils.isZkSecurityEnabled());
- Map<String, Properties> 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.Entry<String, Properties> entry : configs.entrySet()) {
- System.out.println("key=" + entry.getKey() + " ;value= " + entry.getValue());
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (zkUtils != null) {
- zkUtils.close();
- }
- }
- }
- }
kafka系列六、java管理kafka Topic的更多相关文章
- Kafka系列三 java API操作
使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...
- Apache Kafka系列(三) Java API使用
Apache Kafka系列(一) 起步 Apache Kafka系列(二) 命令行工具(CLI) Apache Kafka系列(三) Java API使用 摘要: Apache Kafka Java ...
- Apache Kafka系列(六)客制化Serializer和Deserializer
已经迁移,请移步:http://www.itrensheng.com/archives/apache-kafka-repartition
- Kafka 系列(四)—— Kafka 消费者详解
一.消费者和消费者群组 在 Kafka 中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响.Kafka 之所以要引入消费者群组这个概念是因为 Kafka 消费者经 ...
- Kafka 系列(一)—— Kafka 简介
一.简介 ApacheKafka 是一个分布式的流处理平台.它具有以下特点: 支持消息的发布和订阅,类似于 RabbtMQ.ActiveMQ 等消息队列: 支持数据实时处理: 能保证消息的可靠性投递: ...
- Kafka 系列(三)—— Kafka 生产者详解
一.生产者发送消息的过程 首先介绍一下 Kafka 生产者发送消息的过程: Kafka 会将发送消息包装为 ProducerRecord 对象, ProducerRecord 对象包含了目标主题和要发 ...
- Kafka笔记8(管理Kafka)
使用kafka-topic.sh工具可以执行大部分操作 创建/修改/删除/查看集群里的主题.要使用全部功能,需要通过--zookeeper参数提供zookeerper连接字符串 创建主题: 创建主 ...
- jvm系列(六):Java服务GC参数调优案例
本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...
- java并发系列(六)-----Java并发:volatile关键字解析
在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性.可见性和有序性.只要有一条原则没有被保证,就有可能会导致程序运行不正确.volatile关键字 被用来保证可见性 ...
随机推荐
- 洛谷 P1582 倒水 解题报告
P1582 倒水 题目描述 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子.每次他选择两个当前含水量相同的瓶子,把 ...
- 【原创】py3+requests+json+xlwt,爬取拉勾招聘信息
在拉勾搜索职位时,通过谷歌F12抓取请求信息 发现请求是一个post请求,参数为: 返回的是json数据 有了上面的基础,我们就可以构造请求了 然后对获取到的响应反序列化,这样就获取到了json格式的 ...
- bzoj4504 K个串 (优先队列+主席树)
首先如果没有出现次数的限制的话,这题就是超级钢琴 但由于有了这个限制,不能简单地用前缀和 考虑顺着做的时候每个点的贡献,如果a[i]=x,x上次出现位置是lst[x](可以用一个map来记),那它会给 ...
- IDEA集成有道翻译插件/maven帮助插件/mybatis插件
(一)IDEA集成有道翻译插件:https://www.cnblogs.com/a8457013/p/7814335.html 插件下载地址:http://plugins.jetbrains.com/ ...
- Python数据挖掘课程
[Python数据挖掘课程]一.安装Python及爬虫入门介绍[Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍[Python数据挖掘课程]三.Kmeans聚类代码实现.作 ...
- mysql 日志清理
1.查看binlog日志 show binary logs; 2.删除某个日志文件之前的所有日志文件purge binary logs to 'bin.000106'; 3.再看show binary ...
- Service Fabric基本概念: Node, Application, Service, Partition/Replicas
作者:张鼎松 (Dingsong Zhang) @ Microsoft 在上一节中,为大家简明扼要的介绍了微软针对现代分布式系统在Azure上实现的相关服务组件.紧接上文内容,本节将为大家介绍Azur ...
- java基础-Idea开发工具介绍
java基础-Idea开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前给大家介绍过一款Java的IDE叫eclipse,有些功能用起来不是很得心应手,尤其是在导报的 ...
- 函数和常用模块【day04】:函数介绍(一)
本节内容 1.函数介绍 2.函数定义 3.为什么要使用函数 一.介绍 在我们以往的学习编程的过程当中,碰到的最多的两张编程方式或者说编程方法:面向过程和面向对象.其实不管是哪一种,其实都是编程的方法论 ...
- Java语法总结--Java集合类
这一节我们来总结一下Java集合类. Java集合总结 继承与Collection接口的–List接口 List接口本身的特点 常见的继承List接口的实用类 实用类对比 继承与Collection接 ...