本地手工玩一下kakfa,这里我用的MacOS,因此用brew安装。这里整理了下自己的安装笔记。首先java环境这里就不说了。
一、安装zookeeper
brew的安装这里就不说了,直接安装zookeeper。运行以下命令即可。这里可能因为网络原因比较费时。
brew install zookeeper
这里采用zookeeper 单机模式即可。也可以在/usr/local/etc/zookeeper目录下更改配置文件。
二、安装kafka
kafka安装也很类似,运行以下安装命令。或者也可以查看
brew info kafka
会列举下kafka的可用版本和其他信息。
安装
brew install kafka
其配置文件在/usr/local/etc/kafka目录下,本地单机模式也无需更改。
三、启动zookeeper
运行命令启动zookeeper单机模式
/usr/local/bin/zkServer start
此时启动成功。
四、启动kafka
运行命令,这里为了方便,我切换到/usr/local/bin目录下
kafka-server-start /usr/local/etc/kafka/server.properties
到此本地kafka启动成功
五、创建topic并验证
运行命令,创建topic test
kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
这里指定用本地集群,一个分区,topic名字:test
于topic有关的命令都在 kafka-topics里面,运行命令可以查看
kafka-topics --zookeeper localhost:2181 --describe --topic test
描述信息如下
六、发消息、收消息
向topic发消息
kafka-console-producer --broker-list localhost:9092 --topic test
通过命令行输入消息内容
然后就可以从kafka里面读取消息了
kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning
此时消费者就把消息从topic里读取出来了。
注意,此处因为kafka版本的不同,命令可能不同。老版本里用的是 --zookeeper 而不是 --bootstrap-server。
如果不对,这里会有提示。
七、集群
集群安装也很类似,打开配置文件
vim /usr/local/etc/kafka/server.properites
在该文件中修改下边几个配置:
#broker.id=0 # 每个服务器的broker.id都不能相同
#hostname
host.name=192.168.7.100
#设置zookeeper的连接端口
zookeeper.connect=192.168.43.87:2181
记得保证broker.id 不同,然后启动几个kafka即可
逐个启动kafka即可
./bin/kafka-server-start.sh –daemon config/server.properties
注意
集群的数量最好不要超过 7 个,节点越多,消息复制需要的时间就越长,整个群组的吞吐量就越低。
另外,集群节点数量最好是单数,因为超过一半节点故障集群就不能用了,设置为单数容错率更高。
因为kafka不能脱离zookeeper单独运行,因此启动时,先启动zookeeper集群,再启动kafka集群。关闭时反过来,先关闭kafka集群,再关闭 zookeeper 集群。