1. Zookeeper配置
1.1 在conf目录下增加zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/tracing/zookeeper/data
dataLogDir=/data/tracing/zookeeper/log
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.2:2888:3888
server.3=127.0.0.3:2888:3888
1.2 配置zk的ID
同时在$dataDir下建立myid,内容为171
1.3 启动zk
在bin目录下,运行./zkServer.sh start 启动后台运行,相关目录输出到zookeeper.out文件中
1.4 最终ZK环境
127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181
2. kafka配置
2.1 kafka服务相关配置
Kafka使用zk作为集群协调工具
修改config/server.properties
broker.id=1
host.name=127.0.0.1
# 默认分区数量,也可以在建立topics时进行指定
num.partitions=2
auto.create.topics.enable=true
zookeeper.connect=127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181
zookeeper.connection.timeout.ms=600000
2.2 启动kafka
后台方式运行kafka
# 开启jmx
export JMX_PORT="12300"
# 启动时需要指定server.properties的路径
./kafka-server-start.sh -daemon ../config/server.properties
2.3 建立topic
# 建立名为beats的topic,四个分区,每个节点2个
# 副本数量,至少为1,即只有一份数量,这里的副本概念与es不同
./kafka-topics.sh --create --zookeeper 127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181 --replication-factor 1 --partitions 4 --topic beats
./kafka-topics.sh --list --zookeeper 127.0.0.1:2181
./kafka-topics.sh --delete --zookeeper 127.0.0.1:2181,127.0.0.2:2181,127.0.0.3:2181 --replication-factor 1 --partitions 4 --topic beats
其中 replication-factor 为N,那么允许N-1个副本失效
2.4 Kafka监控组件安装
尝试了各种监控组件,暂时发现kafka-manager最好用,yahoo出品,能通过界面进行日常管理
使用 kafkamanager 来监控kafka
# 直接启动
nohup ./kafka-manager &
http://127.0.0.1:9000 进行访问,在相关页面增加kafka配置
2.5 kafka消息消费说明
- 同group有多个消息者是,会根据个数,动态分配其消费的partition, 如果消费者数量大于分区数量,会有个别消息者没有消息处理
- 保证一个partition只会有一个消息者进行处理
- 在0.10.x版本中,消息者offset信息放在__consumer_offsets队列中