kafka笔记

kafka笔记
Takake1.kafka下载和安装
下载地址
直接下载.tgz 解压即安装完成
1
tar -xvf kafka_2.13-3.7.1.tgz
2.启动运行
2.1.通过zookeeper启动
- 通过zookeeper 启动 kafka
1 | 先启动zookeeper 先进入目录下得bin目录 |
总共占四个端口号 2181/34360, 9092/33942。
2.2.使用KRaft启动启动kafka
1 | 生成Cluster UUID(集群UUID): |
2.3.docker 启动
1 | 拉取Kafka镜像: |
3.kafka操作
1.创建主题Topic
使用Kafka之前,第一件事情是必须创建一个主题(Topic)
主题(Topic)类似于文件系统中的文件夹;
主题(Topic)用于存储事件(Events)
事件(Events)也称为记录或消息,比如支付交易、手机地理位置更新、运输订单、物联网设备或医疗设备的传感器测量数据等等都是事件(Events);
事件(Events)被组织和存储在主题(Topic)中
简单来说,主题(Topic)类似于文件系统中的文件夹,事件(Events)是该文件夹中的文件;
2.创建主题使用:kafka-topics.sh 脚本;
1、不带任何参数会告知该脚本如何使用:./kafka-topics.sh
2、创建主题:./kafka-topics.sh –create –topic quickstart-events –bootstrap-server localhost:9092
3、列出所有的主题:./kafka-topics.sh –list –bootstrap-server localhost:9092
4、删除主题:./kafka-topics.sh –delete –topic quickstart-events –bootstrap-server localhost:9092
5、显示主题详细信息:./kafka-topics.sh –describe –topic quickstart-events –bootstrap-server localhost:9092
6、修改主题信息:./kafka-topics.sh –alter –topic quickstart-events –partitions 5 –bootstrap-server localhost:9092
3.、在主题(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 quickstart-events –bootstrap-server localhost:9092
每一次换行是一个事件Event;
使用Ctrl+C退出,停止发送事件Event到主题Topic;
3、从主题(Topic)中读取事件(Events)
使用kafka-console-consumer.sh消费者客户端读取之前写入的事件Event:
不带任何参数会告知该脚本如何使用:./kafka-console-consumer.sh
./kafka-console-consumer.sh –topic quickstart-events –from-beginning –bootstrap-server localhost:9092
–from-beginning 表示从kafka最早的消息开始消费
使用Ctrl+C停止消费者客户端;
事件Events是持久存储在Kafka中的,所以它们可以被任意多次读取;
4.外部环境连接docker-kafka
外部环境无法连接Kafka?
文件输入:提供一个本地kafka属性配置文件,替换docker容器中的默认配置文件;
docker ps
docker run -p 9092:9092 apache/kafka:3.7.0
docker exec -it 容器id /bin/bash
把docker容器中的文件复制到linux中:
docker cp bf17abcf35f0:/etc/kafka/docker/server.properties /opt/kafka/docker
配置文件:server.properties
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.11.128:9092
advertise的含义表示宣称的、公布的,Kafka服务对外开放的IP和端口;
文件映射:docker run –volume /opt/kafka/docker:/mnt/shared/config -p 9092:9092 apache/kafka:3.7.2
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/