centos7安装单机kafka

 

官网下载地址:https://kafka.apache.org/downloads

kafka 在 2.8 版本开始脱离 zookeeper,本文示例版本为 3.7.1。

参考:https://blog.csdn.net/zaixiaqin/article/details/134968110

 

在 Kafka 和 Zookeeper 的架构中,消息数据是存储在 Kafka 中,而 Zookeeper 仅用于管理和协调 Kafka 集群的元数据和状态。

消息存储:

  • Kafka 负责存储实际的消息数据。
    • Kafka 使用 主题(Topic) 和 分区(Partition) 来组织消息数据。每个分区可以有多个消息,Kafka 会将这些消息顺序地存储在磁盘上,保持持久化。
    • Kafka 集群中的每个 Broker 存储一部分消息数据,这些消息会根据生产者发送的内容写入到对应的分区。
    • 消费者通过读取分区中的消息来消费数据。

Zookeeper 的作用:

  • Zookeeper 并不存储实际的消息内容,而是主要用于 Kafka 集群的协调和管理。
    • 元数据存储:Zookeeper 存储 Kafka 集群的元数据,包括主题的配置信息、分区分配情况、Broker 的状态、Leader 节点的选举等。
    • Leader 选举:Zookeeper 负责管理分区的 Leader 选举,确保 Kafka 中的每个分区有且只有一个 Leader(负责写入和读请求),并且在 Leader 宕机时重新选举一个新的 Leader。
    • 消费者偏移量管理:在某些版本的 Kafka 中,消费者的消费进度(偏移量)也会存储在 Zookeeper 中,以便消费者在重启后能继续消费消息。

 

1、下载

wget https://downloads.apache.org/kafka/3.9.1/kafka_2.12-3.9.1.tgz

 

2、解压

tar zxvf kafka_2.12-3.9.1.tgz -C /data/

3、配置

进入安装目录的config目录

cd /data/kafka_2.12-3.9.1/config

 

consumer.properties 是消费者的相关配置
producer.properties 是生产者的相关配置
server.properties 是 kafka 服务的配置
zookeeper.properties 是 zookeeper 的相关配置
  zookeeper 中记录kafka的broker等信息

修改 server.properties 的配置

vim /data/kafka_2.12-3.9.1/config/server.properties

# 修改2处,只能填写ip不能0.0.0.0
listeners=PLAINTEXT://192.168.1.94:9092
advertised.listeners=PLAINTEXT://192.168.1.94:9092

# kafka的数据存储路径,可改可不改
log.dirs=/tmp/kafka-logs

 

zookeeper.properties配置可以

# zookeeper的默认数据存储路径
dataDir=/tmp/zookeeper

 

不用改

 

4、启动

启动 zookeeper,监听2181端口

cd /data/kafka_2.12-3.9.1/
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动 kafka,监听9092端口

./bin/kafka-server-start.sh -daemon config/server.properties

 

服务器异常断电关机后启动报错,重新部署kafka

 

5、kafka常用操作

5.1 kafka-topics.sh
参数 说明
–bootstrap-server <String: server to connect to> 连接的kafka的broker的主机名称和端口号
–topic <String: topic> 操作的topic的名称
–create 创建topic
–delete 删除主题
–alter 修改主题
–list 查看所有主题
–describe 查看主题详细描述
–partitions <Integer: # of partitions> 设置分区数
–replication-factor <Integer:replication factor> 分区副本数,一般跟kafka节点数相同
–config <String: name=value> 更新系统默认的配置


使用 控制台创建一个 topic

./bin/kafka-topics.sh --bootstrap-server 192.168.1.94:9092 --create --topic som_log --partitions 1

 使用控制台删除一个 topic

./bin/kafka-topics.sh --bootstrap-server 192.168.1.94:9092 --delete --topic som_log

  使用控制台查看有哪些topic

./bin/kafka-topics.sh --bootstrap-server 192.168.1.94:9092 --list

 

5.2 kafka-console-consumer.sh

使用 consumer 控制台订阅 topic

cd /data/kafka_2.12-3.9.1/
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic som_log
    # --from-beginning 消费者订阅topic之前,生产者如果已经发布了一个event,这时消费者是拿不到这个event的,如果想要拿到之前已经发布的event,就加上该参数。

使用 consumer 控制台查看某个topic的消息

./bin/kafka-console-consumer.sh --bootstrap-server 10.1.204.62:9092 --topic som_login_log --from-beginning

 

5.3 kafka-console-producer.sh

使用 producer 控制台发布 event

cd /data/kafka_2.12-3.9.1/
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic som_log
# 在箭头后输入要发送的 event,每行代表一个 event

在 producer 中发布的 event,topic 的订阅者会接收到。

 

posted @ 2024-07-04 18:35  苦逼yw  阅读(892)  评论(0)    收藏  举报