Apache Kafka 安装步骤

概览

安装过程总共分为 3 大块,第一 Java 环境不必多说,第二 Zookeeper 安装,第三 Kafka 安装。

概念了解

Kafka 有几个重要的概念需要先了解一下

名词 解释
broker 可以理解为 Kafka 所在的服务器
ZooKeeper 分布式服务框架在 Kafka 中的作用主要负责保存 topic,partition 元数据,和对 broker 的监控及治理,以及 partition 的 leader 选举(partition 可以有多个副本,但是只有一个处于工作状态,副本只是负责同步数据,当 leader partition 死掉了,会把一个副本的 partition 升级为 leader )
topic 主题,可以理解为消息的分类
partition 分区,从大的概念来说 topic 中的消息都是存放在 patition 中,一个 topic 可以有多个 partition, 一个 partition 可以有多个副本
offset 偏移量,在 Kafka 中 offset 是 partition 中消息序列号,可以认为是这个消息的唯一标识
segment 多个大小相等的 segment file (段) 组成了一个 partition

Java 环境安装

https://yusure.cn/backend/320.html

ZooKeeper框架安装

下载ZooKeeper

官网:http://zookeeper.apache.org/releases.html
请选择新版本,替换下载链接,目前最新版本 zookeeper-3.4.14

cd /opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar zvxf zookeeper-3.4.14.tar.gz

创建配置文件

cd zookeeper-3.4.14
# 创建数据目录 #
mkdir data

cd conf
cp zoo_sample.cfg zoo.cfg

修改 dataDir

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/opt/zookeeper-3.4.14/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

切到 ZK 安装目录,接下来就可以启动 zookeeper 服务器了。

启动 ZooKeeper 服务器

cd /opt/zookeeper-3.4.14 && bin/zkServer.sh start

停止 Zookeeper 服务器

cd /opt/zookeeper-3.4.14 && bin/zkServer.sh stop

重启 Zookeeper 服务器

cd /opt/zookeeper-3.4.14 && bin/zkServer.sh restart

启动响应:

[root@vm172-31-110-6 zookeeper-3.4.14]# bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

启动 CLI 连接 ZK,测试连通性,会看到 Welcome to ZooKeeper! 的回显。

cd /opt/zookeeper-3.4.14 && bin/zkCli.sh

Apache Kafka安装

下载 Kafka

官方下载地址:http://archive.apache.org/dist/kafka/

cd /opt
wget http://archive.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz
tar zvxf kafka_2.12-2.2.0.tgz
cd /opt/kafka_2.12-2.2.0

配置文件

config/server.properties

启动 Kafka

bin/kafka-server-start.sh config/server.properties
# 生产环境,后台运行 #
cd /opt/kafka_2.12-2.2.0 && nohup bin/kafka-server-start.sh config/server.properties &

停止 Kafka

cd /opt/kafka_2.12-2.2.0 && bin/kafka-server-stop.sh config/server.properties

基本操作

创建一个名为 Hello-Kafka 的主题,其中包含一个分区和一个副本因子。
创建 topic 后,您可以在终端窗口中获取通知,可以在 /tmp/kafka-logs 中看到创建 topic 的日志。

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Hello-Kafka

要获取 Kafka 服务器中的 topic 列表

bin/kafka-topics.sh --list --zookeeper localhost:2181

启动生产者以发送消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka

启动消费者以接收消息

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic Hello-Kafka --from-beginning

删除主题

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic Hello-kafka

界面管理工具

Kafka Manager https://yusure.cn/backend/310.html

总结

Apache Kafka 教程 https://www.w3cschool.cn/apache_kafka/
以上是 Kafka 安装和一些使用的简单操作,生产环境 Kafka Cluster 的配置和运维比这复杂一些,需要修改不同的配置文件。

评论