Kafka的基本知识

来自姬鸿昌的知识库
Jihongchang讨论 | 贡献2022年8月22日 (一) 10:21的版本
跳到导航 跳到搜索

1. Kafka 的安装

  • 部署一台 ZooKeeper 服务器
  • 安装 JDK
  • 下载 Kafka 的安装包:https://kafka.apache.org/downloads
  • 上传到 Kafka 服务器上:/usr/local/kafka
  • 解压缩压缩包
  • 进入到 config 目录内,修改 server.properties
# broker.id 属性在 Kafka 集群中必须要是唯一
broker.id 

# Kafka 部署的机器 IP 和提供服务的端口号
listeners=PLAINTEXT://192.168.137.200:9092

# Kafka 的消息存储文件
log.dirs=/usr/local/kafka/data/kafka-logs

# Kafka 连接 ZooKeeper 的地址
zookeeper.connect=localhost:2181

详细

  • 进入到 bin 目录内,执行以下命令来启动 Kafka 服务器(带着配置文件)
[root@localhost bin]# ./kafka-server-start.sh -daemon ../config/server.properties

详细

  • 校验 Kafka 是否启动成功:

进入到 ZooKeeper 内查看是否有 Kafka 的节点:/brokers/ids/0

详情


2. Kafka 中的一些基本概念

Kafka 中有这么些复杂的概念

名称 解释
Broker 消息中间件处理节点,一个 Kafka 节点就是一个 broker,一个或者多个Broker可以组成一个 Kafka 集群
Topic Kafka 根据 topic 对消息进行归类,发布到 Kafka 集群的每条消息都需要指定一个 topic
producer 消息生产者,向 Broker 发送消息的客户端
Consumer 消息消费者,从 Broker 读取消息的客户端


3.创建 topic

  • 通过 Kafka 命令向 ZK 中创建一个主题
[root@localhost ~]# /usr/local/kafka/kafka_2.11-2.4.0/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic test.
[root@localhost ~]#
  • 查看当前 ZK 中所有的主题
[root@localhost ~]# /usr/local/kafka/kafka_2.11-2.4.0/bin/kafka-topics.sh --list --zookeeper localhost:2181
test
[root@localhost ~]#


4.发送消息

把消息发送给 broker 中的某个 topic,打开一个 Kafka 发送消息的客户端,然后开始用客户端向 Kafka 服务器发送消息

[root@localhost ~]# /usr/local/kafka/kafka_2.11-2.4.0/bin/kafka-console-producer.sh --broker-list 192.168.137.200:9092 --topic test
>123
>abc
>java


5.消费消息

打开一个消费消息的客户端,向 Kafka 服务器的某个主题消费消息

  • 方式一:从当前主题中的最后一条消息的 offset(偏移量位置) +1开始消费
[root@localhost ~]# /usr/local/kafka/kafka_2.11-2.4.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.137.200:9092 --topic test
java
qf
hz
  • 方式二:从当前主题中的第一条消息开始消费
    [root@localhost ~]# /usr/local/kafka/kafka_2.11-2.4.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.137.200:9092 --from-beginning --topic test
    123
    abc
    java
    qf
    hz
    


6.关于消息的细节

关于消息的细节.png