准备

  • kafka集群 3台服务器
  • Zookeeper集群 3台服务器

ZooKeeper简介

ZooKeeper是一个开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现。ZooKeeper为分布式应用提供一致性服务,提供的功能包括:分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)、分布式锁(Distributed Lock)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。

ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

Kafka部署

Kafka节点配置

1
2
3
4
5
6
7
8
9
#创建并进入下载目录
mkdir /home/downloads
cd /home/downloads

#下载安装包
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz

#解压到应用目录
tar -zvxf kafka_2.12-2.3.0.tgz -C /usr/kafka
1
2
3
4
5
#进入应用目录
cd /usr/kafka/kafka_2.12-2.3.0/

#修改配置文件
vi config/server.properties

通用配置

1
2
3
4
5
# A comma separated list of directories under which to store log files
log.dirs=/kafka/logs

# root directory for all kafka znodes.
zookeeper.connect=192.168.88.21:2181,192.168.88.22:2181,192.168.88.23:2181

分节点配置

1
2
3
4
broker.id=0

#listeners=PLAINTEXT://:9092
listeners=PLAINTEXT://192.168.88.51:9092

防火墙配置

1
2
3
4
5
#开放端口
firewall-cmd --add-port=9092/tcp --permanent

#重新加载防火墙配置
firewall-cmd --reload

启动Kafka

1
2
3
4
5
6
7
8
9
#进入kafka根目录
cd /usr/kafka/kafka_2.12-2.3.0/
#启动
/bin/kafka-server-start.sh config/server.properties &

#启动成功输出示例(最后几行)
[2019-06-26 21:48:57,183] INFO Kafka commitId: fc1aaa116b661c8a (org.apache.kafka.common.utils.AppInfoParser)
[2019-06-26 21:48:57,183] INFO Kafka startTimeMs: 1561531737175 (org.apache.kafka.common.utils.AppInfoParser)
[2019-06-26 21:48:57,185] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)

可能错误

可能提示Unrecognized VM option PrintGCDateStamps

修改bin/kafka-run-class.sh 255行

1
JAVA_MAJOR_VERSION=$("$JAVA" -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')

Zookeeper部署

可以参考ZooKeeper集群部署指南

Docker 部署

使用docker部署kafka集群也十分方便,不过需要注意,配置hostname等

https://github.com/wurstmeister/kafka-docker

https://github.com/bitnami/bitnami-docker-kafka

https://hub.docker.com/r/wurstmeister/kafka

参考文章

https://www.cnblogs.com/kentalk/p/kafka-cluster-deploy-guide.html

ZooKeeper集群部署指南

https://blog.csdn.net/diandianxiyu_geek/article/details/112511533

https://github.com/wurstmeister/kafka-docker

https://github.com/bitnami/bitnami-docker-kafka

https://hub.docker.com/r/wurstmeister/kafka