kafak集群搭建-基于zookeeper方式
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-02
cp -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.StringDeserializer
value-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 {
@Bean
public NewTopic newTopic(){
//设置副本个数不能为0,也不能大于节点个数,否则将不能创建Topic
return 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上。