下载并解压kafka
(前提是安装并配置好jdk环境变量,原因是kafka依赖于zookeeper,而zookeeper使用java编写,kafka使用scala编写都需要JVM运行环境)
kafka下载地址:http://kafka.apache.org/downloads
zookeeper下载地址:https://zookeeper.apache.org/releases.html
注:自己是存放在/usr/local目录下
使用自带的简版zookeeper搭建zookeeper集群
(也可使用自己下载的zookeeper搭建zookeeper及集群)
注:读者可以把 kafka文件夹复制多份来分别修改zookeeper.properties并运行各自的zookeeper或者仅把kafka文件夹中的zookeeper.properties复制多份使用同一个zookeeper-server-start.sh+不同的配置文件来启动多个zookeeper
在这里为了方便使用第二种方式
1. 修改zookeeper.properties文件
clientPort=2181
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-1
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-1
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
# 处理zookeeper日志,24小时清理一次
autopurge.purgeInterval=24
# 日志文件个数
autopurge.snapRetainCount=3
2. 修改zookeeper2.properties文件
clientPort=2182
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-2
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-2
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
# 处理zookeeper日志,24小时清理一次
autopurge.purgeInterval=24
# 日志文件个数
autopurge.snapRetainCount=3
3. 修改zookeeper3.properties文件
clientPort=2183
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-3
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-3
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
# 处理zookeeper日志,24小时清理一次
autopurge.purgeInterval=24
# 日志文件个数
autopurge.snapRetainCount=3
- 在dataDir中创建myid文件并写入对应server后的数字(1-255)
- 启动zookeeper
cd /usr/local/kafka_2.13-2.6.0
./bin/zookeeper-server-start.sh -daemon config/zookeeper1.properties
其他两个同样方式启动(-daemon以守护线程运行)
搭建kafka集群
复制两份server.properties并修改内容
1.修改server.properties
broker.id=0
listeners=PLAINTEXT://ljq:9092
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-0
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183
log.retention.hours=168
2.修改server1.properties
broker.id=1
listeners=PLAINTEXT://ljq:9093
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-1
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183
2.修改server2.properties
broker.id=2
listeners=PLAINTEXT://ljq:9094
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-2
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183
3.启动kafka
cd /usr/local/kafka_2.13-2.6.0
./bin/kafka-server-start.sh -daemon config/server.properties
其它两个同样方式启动(-daemon以守护线程运行)
4.创建话题
./bin/kafka-topics.sh --create --topic first --bootstrap-server ljq:9092,ljq:9093,ljq:9094 --partitions 3 --replication-factor 3
5.查看话题详细信息
./bin/kafka-topics.sh --describe --bootstrap-server ljq:9092 --topic first
6.启动生产者
./bin/kafka-console-producer.sh --bootstrap-server ljq:9092,ljq:9093 --topic first
7.启动消费者
./kafka-console-consumer.sh --bootstrap-server ljq:9093 --topic first --from-beginning
来源:oschina
链接:https://my.oschina.net/u/4406280/blog/4794530