想要学习kafka,我们首先需要搭建一个kafka真实的环境,才可以更直观了解kafka的结构并进行实战操作。
请读者根据自己已有的环境以及已有的知识储备选择相应的安装方式
从低配到高配,总有一款适合你(//▽//)
1. 练手低配单机版
- 解压文件
>tar -xzf kafka_2.9.2-0.8.1.1.tgz
>cd kafka_2.9.2-0.8.1.1
目录结构如下:
- 启动zookeeper
kafka的启动是依赖zookeeper的 我们这里直接使用kafka里面自带的zookeeper
>bin/zookeeper-server-start.sh config/zookeeper.properties &
Zookeeper进程启动会占用2181端口
- 解压文件配置Kafka
修改config/server.properties文件中的配置,这样kafka服务进程才知道怎么找到zk服务进程。
zookeeper.connect=yourhost:2181(替换yourhost为你机器的ip或者hostname啊!!(╯ ̄Д ̄)╯).
- 启动Kafka
>bin/kafka-server-start.sh config/server.properties &
- 检查服务是否成功启动
使用jps命令查看zk和kafka的进程是否成功启动
- 整体架构图
2. 中配单机“集群”版
刚才只是启动了单个kafka服务进程,现在启动有3个kafka进程组成的集群,这些三个kafka进程也都是在本机上的。
我们在1低配的基础上进行以下的操作
- 配置文件
拷贝两份配置文件:
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
修改配置文件
Server.properties保持不变,如下:
因为在同一个机器上,所以制定不同的端口和数据存储的目录,避免数据被覆盖
- 分别启动这两个服务
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
- 整体结构图
不同的kafka进程,它们互相独立,又相互协作。那它们之间是如何识别对方的呢:
server.properties文件里面zookeeper.connect=10.67.1.181:2181通过zk找到对方
只要配置了这个,以及broker.id,则可以加入到集群中。
一个zk集群中就一个kafka集群,在zk中就能看到该信息
3. 高配real集群版
首先我们会有一个自己独立的zk集群(这里不讲解zk的内容)
在各台主机上分别分发kafka的安装包,修改config/server.properties文件中的配置zookeeper.connect=yourhost:2181
broke-id:yourid
然后在个台机器上分别启动服务
bin/kafka-server-start.sh config/server.properties &