以下内容很很多博客都写了,但是。。。。网上内容很多都经不了经验(有的博客根据流程竟然跑不通。。。。),本人亲测必须给力!!!若不行,请直接联系我,我教到你OK。
一.先安装zookeeper集群,这里模拟两个
1.从zookeeper官网下载合适的版本,点击左边这个快捷传送门<--------;
2.解压,整个路径下不能有中文
3.将/conf目录下的zoo.sample.cfg复制一份,新的这个更名为zoo.cfg
4,在zookeeper目录下下新建两个文件夹:data 和log文件夹
5.在data目录下打开cmd窗口,输入 echo x >myid , (集群中myid作为每个节点的标志,所以这个x不能重复)
6.修改zoo.cfg文件,
#加入这两行,路径为新建data和log文件夹的路径
dataDir=D:\\tools\\sluter\\zookeeper1\\data
dataLogDir=D:\\tools\\sluter\\zookeeper1\\log
server.1=192.168.0.101:28881:38881
server.2=192.168.0.101:28882:38882
最终zoo.cfg配置文件如下:
7.复制一份上面zookeeper文件,修改文件夹名为zookeeper2,重复以上操作
并且修改clientPort=2182,这里将myid设置为2
最终zoo.cfg如下:
8.在两个zookeeper文件夹bin目录下修改zkServer.cmd
添加set ZOOCFG=..\conf\zoo.cfg,
最终如下:
9.分别启动启动两个zookeepe_Xr/bin下的zkServer.cmd
二.安装Kafka集群(默认机器上已安装好jdk环境)
2.解压
3.修改kafka文件夹\config下的server.properties文件
broker.id=1
port=9093
zookeeper.connect=localhost:2181,localhost:2082(上面zookeeper的clientPort)
4.复制kafka文件夹
修改broker.id=2
port=9093
log.dirs=/tmp/kafka-logs1
###整个搭建流程完毕####
测试下:
1.启动两个kafka,在bin\windows下打开cmd执行命令
kafka-server-start.bat ../../config/server.properties
2.在其中一个创建topic,cmd命令如下
kafka-topics.bat --create --zookeeper 192.168.0.101:2181,192.168.0.101:2182 --replication-factor 2 --partitions 3 --topic test
以下这个命令查看topic列表:
kafka-topics.bat --list --zookeeper 192.168.0.101:2181
以下命令查看某个topic的详细信息:
kafka-topics.bat --describe --zookeeper 192.168.0.101:2181 --topic xxx
3.生产topic消息(操作3)
kafka-console-producer.bat --broker-list 192.168.0.101:9092 --topic test
--然后可以输入消息了
4.消费topic消息
kafka-console-consumer.bat --zookeeper 192.168.0.101:2181,192.168.0.101:2182 --topic test --from-beginning
--当操作3输入了消息,这里就可以实时收到消息了
---当重新建立一个消费端时,此时会把生产的所有消息都拉取出来,这里也表现了Kafka的消息被消费后不会被删除
##########坑点1###########
Kafka版本有很大差异,比如操作4命令,高版本的不支持--zookeeper ,虽然有--bootstrap-server但是还是收不到生产的消息,所以建议用稍低版本的Kafka,本搭建环境是kafka_2.12-0.10.2.0
##########坑点2###########
kafka集群配置中修改了其中一个Kafka文件夹\config\server.properties下的broker.id,结果启动时报错broker.id与配置文件log.dirs路径下存储的broker.id不一样,所以删除该路径下的东西就可以了。