Kafka(三) 简单API编程 - Go语言中文社区

Kafka(三) 简单API编程


        通过前面两篇,了解了Kafka的基本概念的安装配置,现在在Java中调用它的API来初步实现一些功能。

        先备条件:

        - ZooKeeper已启动

        - Kafka实例代理已启动,为了方便查看,也启动Kafka Manager网站,如下,有一个名为jim_test,id为0的broker,里面有一个默认的主题:

          

          

        开始……

        1. IDEA新建一个用maven管理的Java项目

            

 

        2. pom.xml引入kafka的依赖包

            

        3. 主题基本操作

            3.1 查看主题

                  

package cn.linjk.kafka;

import kafka.admin.AdminUtils;
import kafka.utils.ZkUtils;
import org.apache.kafka.common.requests.MetadataResponse;
import org.apache.kafka.common.security.JaasUtils;

public class Main {
    private static final String ZK_HOST = "localhost:2181"; // 集群时: "localhost-1:2181,localhsot-2:2181"
    private static final int TIMEOUT_SESSION = 3000;
    private static final int TIMEOUT_CONNECT = 3000;

    public static void main(String[] args) {
        topic_info("__consumer_offsets");
    }

    private static void topic_info(String topic_name) {
        ZkUtils zkUtils = null;
        try {
            zkUtils = ZkUtils.apply(ZK_HOST, TIMEOUT_SESSION, TIMEOUT_CONNECT,
                    JaasUtils.isZkSecurityEnabled());
            MetadataResponse.TopicMetadata topicMetadata =  AdminUtils.fetchTopicMetadataFromZk(
                    topic_name, zkUtils);
            System.out.println(topicMetadata.partitionMetadata().size());
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            zkUtils.close();
        }
    }
}

            3.2 创建主题

                  创建主题时,需要指定主题的分区数和副本数,同时可以设置主题的级别,还可以执行机架感知类型(主要针对自动分配副本策略时指定代理机架信息)。

                  

                  可以看到,创建主题是没返回的,只要没异常,主题都是会创建成果的。

                  

            3.3 修改主题配置

                  配置的这次修改会覆盖上一次修改,如果本次修改没有传上次配置的参数,上次配置的参数会恢复到默认值,因此建议修改前先获取上次配置,然后在上次配置的基础上进行修改。

                  

            3.4 删除主题

                  

                  

                   可以看到,并未真正删除主题,只是标记其状态为删除,如果需要彻底删除,需要手动删除相应文件及节点,如果想直接可以删除,需要修改Kafka的server.properties配置文件以下属性为true:

                   

        4. 小结

            在上面的查看、新增、修改和删除中,可以看到两个重要的类: ZkUtils和AdminUtils,可以对应源码看其作用和进行实际测试即可。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Linjingke32/article/details/81603992
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-02 18:14:26
  • 阅读 ( 1079 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢