欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

程序员文章站 2022-05-20 14:57:38
...

一、MQ服务器集群基本的概念

Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统。 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为*开源项目。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。

注意:Kafka并没有遵循JMS规范,它只提供了发布和订阅通讯方式。
kafka中文官网:http://kafka.apachecn.org/quickstart.html
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

二、kafka服务器常用相关名词

Broker: Broker就是表示一个MQ服务器端,多个Broker就是表示多个不同的MQ服务器端形成一个群体;

Topic主题 目录 一个MQ服务端可以存放多个不同的主题 每个主题实际就是消息的分类
massage: 就是异步通讯传递的参数

Partition分区 多大的群体实现分区 数据库中1000万条数据 分成10表 redis相当于卡槽
Kafka里面实现分区:一个Broker就是表示一个区域

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

Producer : 生产者 向MQ投递消息
Consumer : MQ将消息推送消费者消费
Consumer Group: 对我们消费者实现分组
Offset:偏移量 实际就是我们的消息的索引位置

主题和队列队列有啥区别

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

三、kafka集群节点如何实现相互感知

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建
新的broker加入,zk节点发生变化,会有时间通知,就会知道是集群了。

四、kafka集群环境搭建方式实现

Kafka为什么会依赖与zk?

1.kafka会将MQ的信息存放到zk上
2.为了是整个集群能够方便扩展,采用zk事件通知相互感知
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

五、搭建Zookeeper集群节点

修改conf: vi zoo.cfg 修改两处
(1) dataDir=/usr/kafka/zookeeper/data(注意同时在zookeeper创建data目录)
(2)最后面添加
server.0=192.168.212.174:2888:3888
server.1=192.168.212.175:2888:3888
server.2=192.168.212.176:2888:3888

vi ./kafka/config/server.properties

broker.id=0

listeners=PLAINTEXT://192.168.131.130:9092
zookeeper.connect=192.168.212.164:2181,192.168.212.167:2181,192.168.212.168:2181
其他两台只需要修改server.properties中的broker.id分别为 1 ,2

问题: 找不到文件

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

原因: 学会看日志(路径写错了)

改成正确的路径即可

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

六、搭建Kafka集群方式实现通讯

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

1、开启3台虚拟机的zookeeper程序

/usr/local/zookeeper/bin/zkServer.sh start
开启成功后查看zookeeper集群的状态
/usr/local/zookeeper/bin/zkServer.sh status
出现Mode:follower或是Mode:leader则代表成功

2、在后台开启3台虚拟机的kafka程序(cd /usr/local/kafka)

./bin/kafka-server-start.sh -daemon config/server.properties

3、在其中一台虚拟机(192.168.131.130)创建topic

/usr/local/kafka/bin/kafka-topics.sh --create –zookeeper 192.168.212.131:2181 –replication-factor 3 –partitions 1 –topic my-replicated-topic
// 查看创建的topic信息
/usr/local/kafka/bin/kafka-topics.sh –describe –zookeeper 192.168.212.132:2181 –topic my-replicated-topic

详细参照官网即可
http://kafka.apachecn.org/quickstart.html

七、kafka集群实现分区存放不同节点

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

Step 3: 创建一个 topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

–partitions 1:分区是 1 不是集群
–replication-factor 1 :副本 备份消息 防止丢失
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

Step 4: 发送一些消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
不要用localhost:87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

Step 5: 启动一个 consumer

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

八、SpringBoot如何整合kafka集群

第一次主动拉去,后期都是推送。

发送6个消息,没有分区
87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

改变路径 ,再次发送5个消息 :有消息

87.分布式消息中间件-Kafka-高可用集群环境kafka环境搭建

相关标签: 6期