一、集群说明
关于kafka常用的两种集群方式:1)单机多broker - 单台服务器配置多个broker 2) 多机多broker - 多台服务器配置多个broker(3个zookeeper、3个kafka)
二、单机多broker
1. 在单独服务器(192.168.1.7)上安装zookeeper、kafka软件
2. 复制config/server.properties为server-1.propeties,并进行如下修改
[root@centos6 kafka]# cp config/server.properties config/server-1.properties@b@[root@centos6 kafka]# vi config/server-1.properties@b@@b@#broker.id=0@b@broker.id=1@b@@b@#listeners=PLAINTEXT://:9092@b@listeners=PLAINTEXT://192.168.1.7:9093@b@@b@#host.name=localhost@b@host.name=192.168.1.7@b@@b@#log.dirs=/tmp/kafka-logs@b@log.dirs=/tmp/kafka-logs-1
3. 修改config/producer.properties
[root@centos6 kafka]# vi config/producer.properties@b@#metadata.broker.list=localhost:9092@b@metadata.broker.list=192.168.1.7:9092,192.168.1.7:9093
4. 分别运行kafka基于不同配置启动进程
[root@centos6 kafka]# bin/kafka-server-start.sh config/server.properties
[root@centos6 kafka]# bin/kafka-server-start.sh config/server-1.properties
5. 通过项目示例进行测试验证 - 修改props.put("bootstrap.servers", "192.168.1.79092,192.168.1.7:9093");
三、多机多broker
1. 分别在三台服务器(192.168.1.7、192.168.1.8、192.168.1.9)上安装zookeeper、kafka软件
2. 分别在三台服务器分别配置zk集群 - 修改zk配置文件conf/zoo.cfg 并增加如下配置
server.1=192.168.1.7:7008@b@server.2=192.168.1.8:7008@b@server.3=192.168.1.9:7008
3. 分别在三台服务器配置kafka的config/server.properties配置文件
#192.168.1.7/8/9 三台机器将broker.id分配配置为1、2、3@b@#broker.id=0@b@broker.id=1@b@#192.168.1.7/8/9 三台机器的host.name分配定义各自ip地址@b@#host.name=localhost@b@host.name=192.168.1.7@b@#zookeeper.connect=localhost:2181@b@zookeeper.connect=192.168.1.7:2181,192.168.1.8:2181,192.168.1.9:2181
4. 分别在三台服务器配置kafka的config/producer.properties配置文件
#metadata.broker.list=localhost:9092@b@metadata.broker.list=192.168.1.7:9092,192.168.1.8:9092,192.168.1.9:9092@b@#producer.type=sync@b@producer.type=async
5. 分别在三台服务器配置kafka的config/consumer.properties配置文件
#zookeeper.connect=127.0.0.1:2181@b@zookeeper.connect=192.168.1.7:2181,192.168.1.8:2181,192.168.1.9:2181
6. 对应步骤3中server.properties修改的broker.id,对/tmp/kafka-logs/meta.properties(server.properties中默认配置log.dirs=/tmp/kafka-logs)做对应的broker.id修改,需保持一致,否则会启动会报异常,造成启动失败,具体如下
[root@centos6 kafka]# vi /tmp/kafka-logs/meta.properties@b@#192.168.1.7/8/9 三台机器将broker.id分配配置为1、2、3@b@#broker.id=0@b@broker.id=1
7. 配置完成后,分别在三台服务器启动kafka(bin/kafka-server-start.sh config/server.properties启动命令)
8. 通过项目示例进行测试验证 - 修改props.put("bootstrap.servers", "192.168.1.7:9092,192.168.1.8:9092,192.168.1.9:9092");