Skip to content

kafka-client 创建 topic 原理 #2

Description

@snipercy

一般都是用kafka-client来使用kafka,来消费/生产消息。那么可不可以用kafka-client 来管理kafka呢?
其实,可以使用yahoo开源的kafka-manager,但是语言是scala,可能需要自己维护,功能也较多,调研了一下可能不太符合我的需求。
我的需求只是按租户管理topic:限制topc的大小(可以参考 Issuer 1),创建/删除 topic即可。
其实,感觉为了满足此需求最简单的做法是写个脚本,简单封装下kafka提供的命令行管理工具即可。

kafka-client中如何创建topic

produce这样的一个功能:向一个不存在的topic中发消息时,kafka会先创建该topic,当然这个功能是可选的。
所以,kafka-client 肯定是可以创建topic的,但是它并没有直接提供相关接口。

kafka 提供的shell客户端可以创建topic和一些高级管理接口,看了它提供的shell脚本,也是调用了一些class文件来实现的,故可以依赖kafka server端的jar包,调用相关类实现topic的创建,只不过没有api文档,自己去看源码,最终需要调用的函数为: TopicCommand.createTopic(zkUtils, opt);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions