1. 环境概述
kafka集群环境搭建需要zookeeper集群支持,目前kafka压缩包自带zookeeper,本次集群实施我们采用kafka自带的zookeeper对环境部署。
Zookeeper集群搭建至少需要三台vm,如果需要增加集群,zookeeper集群数量为(2n+1)增加。
下图为kafka体系结构:
Topic:
主题可理解为一个队列。Kafka的消息通过topic进行分类,topic就像是数据库中的"表"。topic可以被分成若干个分区(类似HBase中建表时预分区),一个分区对应一个提交日志。消息以追加的方式写入分区,然后以FIFO进行顺序读取,每个分区内的顺序是确定的
Producer:
消息生产者,向 broker 推送消息的客户端。一个消息会被发布到一个特定的topic上,producer默认会将消息均衡地分布到主题的所有分区上(Hash分区器)
Consumer:
消息消费者,向 broker 抓取消息的可独断。Consumer可以抓取同一个topic中的不同分区,并按照消息生成的顺序读取
Consumer通过检查消息的offset来区分已经读取过的消息。
Brocker:
一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker 可以容纳多个 topic。
2. 软件环境
测试环境如下:
Azure vm(red hat 7.