kafka伪集群搭建

2018-12-07 18:32 

1、软件环境准备
Kafka是将状态保存在zookeeper中的,所以首先要搭建zookeeper集群。
获取kafka的压缩包 wget http://mirrors.hust.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz

2、解压软件

tar -zxvf kafka_2.11-1.1.0.tgz
mv kafka_2.11-1.1.0 kafka

下图为解压后kafka文件夹内容
这里写图片描述

3、修改配置文件

cd /mnt/kafka
ll ./config/

这里写图片描述
kafka的配置文件都放在config目录下,我们搭建集群需要修改的是server.properties

vim ./config/server.properties

需要重点注意和修改的几个配置项
这里写图片描述
集群内不同的broker.id必须为不重复的数字,否则重复的将启动失败
这里写图片描述
listeners配置kafka的host和port,如果不配置ip,kafka会使用默认的hostname去访问,而使用端口访问将失败
伪集群中port必须不一样
这里写图片描述
log.dirs是消息存放的目录,并非kafka运行日志存放的目录,kafka运行日志存放的目录位于kafka根目录的logs目录下
这里写图片描述
zookeeper.connect配置zookeeper集群的ip和端口,用英文逗号分隔,zookeeper集群可以和kafka集群不在同一个机器
除上述参数需要修改外,还需要增加一个参数

default.replication.factor=2  #消息备份的个数,默认是1,如果为1则当leader宕机时会导致服务不可用

接下来拷贝两份server.properties文件并修改拷贝文件中的broker.id listeners log.dirs 参数

cp ./config/server.properties ./config/server1.properties
cp ./config/server.properties ./config/server2.properties
vim ./config/server1.properties
vim ./config/server2.properties

4、启动集群及测试

回到kafka根目录

cd /mnt/kafka
./bin/kafka-server-start.sh -daemon ./config/server.properties
./bin/kafka-server-start.sh -daemon ./config/server1.properties
./bin/kafka-server-start.sh -daemon ./config/server2.properties

注:如果单机伪集群内存不够,可以修改启动脚本,将红框内的内存改小些,默认为1G

vim ./bin/kafka-server-start.sh

这里写图片描述
如果不熟悉kafka集群,则可以在启动时不加 -daemon参数,观察kafka启动过程
如果在启动中报错,kafka会在安装目录下生成一个错误log,可以通过查看该文件排错直至启动
这里写图片描述

集群启动成功后我们可以通过两种方式验证
(1)通过zookeeper验证

    /mnt/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
    //server后填zookeeper的ip+端口,多个用英文逗号分隔

登录成功后可以使用ls查看kafka的broker id,topic等等

    ls /brokers/ids

这里写图片描述
查看topic

ls /brokers/topic

(2)通过kafka消息发送接收验证
如果是伪集群,则打开多个liunx会话窗口

在窗口1创建一个producer,topic为test,broker-list为zookeeper集群ip+端口
/mnt/kafka/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094 --topic test
在窗口2创建一个consumer,topic为test,bootstrap-server为zookeeper集群ip+端口
/mnt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094 --topic test --from-beginning

在窗口1中输入helloword,如果在窗口2中接收到则集群搭建成功
窗口1:
这里写图片描述
窗口2:
这里写图片描述

注意:如果在多台机器上搭建集群出现无法连接的状况请检查防火墙,或者直接将防火墙关闭
kafka相关配置信息及命令可以查看kafka官方文档http://kafka.apache.org/documentation.html

发表评论

您必须 登录 才能发表留言!