kafka简介
為了實現高可用,高吞吐量,kafka以集群方式部署,分別在3臺服務器上安裝部署,因kafka依賴於zookeeper,如果想要使用Kafka,就必须安装ZK,Kafka中的消费偏置信息、kafka集群、topic信息会被存储在ZK中。
這裏採用kafka內置的zookeeper,也是以集群方式部署,無需在單獨安裝zookeeper。
首先让我们看几个基本的消息系统术语:
•Kafka将消息以topic为单位进行归纳。
•将向Kafka topic发布消息的程序成为producers.
•将预订topics并消费消息的程序成为consumer.
•Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.
producers通过网络将消息发送到Kafka集群,集群向消费者提供消息,如下图所示:
客户端和服务端通过TCP协议通信。Kafka提供了Java客户端,并且对多种语言都提供了支持。
环境准备
kafka版本:kafka_2.11-1.0.0.tgz
三台主机IP:172.16.10.91、172.16.10.92、172.16.10.93
安裝配置工作
1、kafka安裝
下载后解压kafka,将其解压到/usr/local目录下,删除压缩包即可:
tar xzvf kafka_2.11-1.0.0.tgz #解压
进入到kafka的config目录
自定义目录:
首先新建kafka的日志目录和zookeeper数据目录,因为这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以我们自定义以下目录:
mkdir /usr/local/kafka_2.11-1.0.0/zookeeper #创建zookeeper数据目录
mkdir/usr/local/kafka_2.11-1.0.0/log #创建日志目录
mkdir/usr/local/kafka_2.11-1.0.0/log/zookeeper #创建zookeeper日志目录
mkdir/usr/local/kafka_2.11-1.0.0/log/kafka #创建kafka日志目录
2、zookeeper配置
>修改 zookeeper.properties
进入config目录下,修改关键配置如下,3台服务器的zookeeper.properties配置文件都一样
#修改为自定义的zookeeper数据目录
dataDir=/usr/local/kafka_2.11-1.0.0/zookeeper
#修改为自定义的zookeeper日志目录
dataLogDir=/usr/local/kafka_2.11-1.0.0/log/zookeeper
# 端口
clientPort=2181#注释掉
#maxClientCnxns=0#设置连接参数,添加如下配置
tickTime=2000 #为zk的基本时间单元,毫秒initLimit=10 #Leader-Follower初始通信时限 tickTime*10syncLimit=5 #Leader-Follower同步通信时限 tickTime*5#设置broker Id的服务地址
server.0=172.16.10.91:2888:3888server.1=172.16.10.92:2