kafak集群搭建-基于zookeeper方式
- 1、准备3个kafka
- 2、修改配置文件
- 2.1、修改配置文件
- 3、启动测试
- 3.1、先启动zookeeper
- 3.2、再启动三台kafka
- 4、SpringBoot集成kafka集群
- 4.1、项目配置文件application.yml
- 4.2、kafka配置类
- 4.3、启动SpringBoot程序
- 5、kafka集群架构分析
- 6、查看topic详情
- 7、kafka集群架构-多副本架构分析
1、准备3个kafka
解压kafka压缩包
tar -zxvf kafka_2.13-3.7.0.tgz
将解压后的kafka移动到/usr/local文件夹下,并修改名字
mv kafka_2.13-3.7.0 /usr/local/kafka_2.13-3.7.0-01
将kafka_2.13-3.7.0-01复制两份
cp -rf kafka_2.13-3.7.0-01/ kafka_2.13-3.7.0-02cp -rf kafka_2.13-3.7.0-01/ kafka_2.13-3.7.0-03
2、修改配置文件
2.1、修改配置文件
下边以一台kafka服务为例进行配置:
3、启动测试
3.1、先启动zookeeper
3.2、再启动三台kafka
在kafka安装目录下bin文件夹内,执行命令
./kafka-server-start.sh ../config/server/properties
4、SpringBoot集成kafka集群
4.1、项目配置文件application.yml
spring:application:#应用名称name: spring-boot-08-kafka-colony#kafka连接地址(ip+port)kafka:bootstrap-servers: <你的服务器IP>:9091,<你的服务器IP>:9092#配置消费者的反序列化consumer:key-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializer
4.2、kafka配置类
- 副本数一般与服务器节点数保持一致
- 分区数不做限制
package com.power.config;import org.apache.kafka.clients.admin.NewTopic;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class KafkaConfig {@Beanpublic NewTopic newTopic(){//设置副本个数不能为0,也不能大于节点个数,否则将不能创建Topicreturn new NewTopic("clusterTopic",2, (short)2);}
}
4.3、启动SpringBoot程序
SpringBoot集成kafka成功
5、kafka集群架构分析
6、查看topic详情
./kafka-topics.sh --bootstrap-server 127.0.0.1:9091 --describe --topic clusterTopic
7、kafka集群架构-多副本架构分析
- 主副本究竟放在哪个broker中由kafka内部机制决定;
- 从副本和主副本不在同一个broker上。