kafka集群
1修改/usr/local/kafka/conf下的文件server.properties
broker.id=0(不能重复)
zookeeper.connect=192.168.43.65:2181,192.168.43.5:2181,192.168.43.246:2181===》zookeeper集群的ip地址
2、验证是否正确,可以先创建topic看看其他的kafka是否可以看到创建的这个topic
创建topic:
./kafka-topics.sh --create --zookeeper 192.168.43.65:2181 --replication-factor 1 --partitions 1 --topic test1
查看所有topic:
./kafka-topics.sh --list --zookeeper 192.168.1.65:2181
两个分区三个副本的topic信息描述如下:
Isr:能够同步副本的broker.id,如果性能太差会被踢出Isr集合
副本就是为分区提供多个备份,副本数不能超过broker的数量(kafka服务器)
副本中也有leader的概念,多个副本会有一个leader,读跟写都发生在leader上,跟zookeeper一样也是通过选举模式来选中leader
broker、主题、分区、副本之间的关系:
集群中有多个broker,一个broker可以创建多个主题,主题中可以创建多个分区,分区中可以创建多个副本(数量不能超过broker数量)
controller:控制选举leader,根据Isr
rebalance:控制分区给哪个消费者消费(当消费者和分区关系发生变化就会触发rebalance)
问题优化
kafka如何防止数据丢失:
生产者:使用同步发送)把ack设置为1或 者all并设置同步分区数》=2
消费者:把自动提交改为手动提交
kafka-eagle监控平台的搭建: