Kafka3.7.0:2.Kafka操作
Topic和Events
创建主题Topic
主题(Topic)类似于文件系统中的文件夹,它用来存储事件(Events)。
事件(Events)也称为纪录或消息,比如支付交易、手机地理位置更新、运输订单、物联网设备或医疗设备的传感器测量数据等等都是事件(Events);事件(Events)被组织和存储在主题(Topic)中。
简单来说,主题(Topic)类似于文件系统中的文件夹,事件(Events)是该文件夹中的文件。
创建主题使用:kafka-topics.sh 脚本
- 不带任何参数会告知该脚本如何使用:./kafka-topics.sh
- 创建主题:./kafka-topics.sh --create --topic <主题名> --bootstrap-server localhost:9092
- 列出所有的主题:./kafka-topics.sh --list --bootstrap-server localhost:9092
- 删除主题:./kafka-topics.sh --delete --topic <主题名> --bootstrap-server localhost:9092
- 显示主题详细信息:./kafka-topics.sh --describe --topic <主题名> --bootstrap-server localhost:9092
- 修改主题信息:./kafka-topics.sh --alter --topic <主题名> --partitions 5 --bootstrap-server localhost:9092
在主题(Topic)中写入一些事件(Events)
Kafka客户端通过网络与Kafka Brokers进行通信,可以写(或读)主题Topic中的事件Events。
Kafka Brokers一旦收到事件Event,就会将事件Event以持久和容错的方式存储起来,可以永久地存储。
通过 kafka-console-producer.sh 脚本工具写入事件Events
- 不带任何参数会告知该脚本如何使用:./kafka-console-producer.sh
./kafka-console-producer.sh --topic <主题名> --bootstrap-server localhost:9092
每一次换行是一个事件Event
使用Ctrl+C退出,停止发送事件Event到主题Topic
从主题(Topic)中读取事件(Events)
使用kafka-console-consumer.sh消费者客户端读取之前写入的事件Event:
- 不带任何参数会告知该脚本如何使用:./kafka-console-consumer.sh
- ./kafka-console-consumer.sh --topic <主题名> --from-beginning --bootstrap-server localhost:9092
- –from-beginning 表示从kafka最早的消息开始消费
- 使用Ctrl+C停止消费者客户端
事件Events是持久存储在Kafka中的,所以它们可以被任意多次读取
外部环境连接Kafka
- 启动Kafka容器:docker run -p 9092:9092 apache/kafka:3.7.0
- 安装外部连接工具:IDEA Kafka插件
- 外部连接工具连接Kafka
Docker容器的Kafka有三种配置启动方式:
- 默认配置:使用Kafka容器的默认配置,外部是连不上的
- 文件输入:提供一个本地kafka属性配置文件,替换docker容器中的默认配置文件
- 环境变量:通过env变量定义Kafka属性,覆盖默认配置中定义对应该属性的值
文件输入
提供一个本地kafka属性配置文件,替换docker容器中的默认配置文件
1 | docker run -p 9092:9092 apache/kafka:3.7.0 |
Kafka图形界面连接工具:
- Offset Explorer (以前叫 Kafka Tool),官网:https://www.kafkatool.com/
- CMAK(以前叫 Kafka Manager) 官网:https://github.com/yahoo/CMAK
- EFAK(以前叫 kafka-eagle) 官网:https://www.kafka-eagle.org/
Offset Explorer
CMAK&EFAK
不建议使用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 元渊`Blog!
评论