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

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

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

注意:Kafka并没有遵循JMS规范,它只提供了发布和订阅通讯方式。
kafka中文官网:http://kafka.apachecn.org/quickstart.html
在这里插入图片描述

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

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

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

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

在这里插入图片描述
在这里插入图片描述

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

主题和队列队列有啥区别

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
新的broker加入,zk节点发生变化,会有时间通知,就会知道是集群了。

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

Kafka为什么会依赖与zk?

1.kafka会将MQ的信息存放到zk上
2.为了是整个集群能够方便扩展,采用zk事件通知相互感知

五、搭建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

问题: 找不到文件

在这里插入图片描述

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

改成正确的路径即可

在这里插入图片描述
在这里插入图片描述

六、搭建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集群实现分区存放不同节点

在这里插入图片描述

Step 3: 创建一个 topic

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

–partitions 1:分区是 1 不是集群
–replication-factor 1 :副本 备份消息 防止丢失
在这里插入图片描述

Step 4: 发送一些消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
不要用localhost:在这里插入图片描述

Step 5: 启动一个 consumer

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
在这里插入图片描述

八、SpringBoot如何整合kafka集群

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

发送6个消息,没有分区
在这里插入图片描述

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值