简介
微服务 的三高,高并发,高可用,高可靠,作为微服务中必不可少的MQ中间件, kafka 也必须要满足这三点。kafka如何如何保证高并发,高可用,高可靠,两个字——集群。
前置条件
- 三台服务器,用来部署三个kafak
- java环境, jdk 1.8+
- kafka安装包版本kafka_2.13-3.0.0
- zookeeper (非必须,可以使用kafka自带的)
zookeeper集群安装
kafka本身是没有调度能力,需要借助zookeeper来进行任务调度,所以需要安装zookeeper
单机安装
解压zookeeper安装包
tar -zxvf apache -zookeeper-3.7.0-bin.tar.gz
修改配置
cp apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg apache-zookeeper-3.7.0-bin/conf/zoo.cfg
vi apache-zookeeper-3.7.0-bin/conf/zoo.cfg
末尾添加内容:
#事务日志输出目录
dataDir=../zkdatas
#集群服务器配置,数字1/2/3需要与myid文件一致。右边两个端口,2888表示数据同步和通信端口;3888表示选举端口
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
创建日志目录和myid文件
#创建数据存储目录:
mkdir zkdatas
#创建myid:
cd zkdatas
touch myid
并编辑myid内容为1
启动
apache-zookeeper-3.7.0-bin/bin/zkServer.sh start
复制到其他两台服务器并启动
将以上的步骤在其他两台服务器上一模一样的执行,其中注意myid文件的内容,三台服务器要分别是1,2,3
查看集群状态
apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
kafka集群安装
安装单机kafka
参考:
复制该kafka到其他服务器
复制该kafka到其他服务器
修改配置文件
修改server.properties,主要参数是:
- broker.id,保证三台服务器都是唯一的
- zookeeper.connect,zookeeper集群地址
- log.dirs 日志目录
vi kafka_2.13-3.0.0/config/server.properties
分别启动三台服务器上的kafka
kafka_2.13-3.0.0/bin/kafka-server-start.sh –daemon config/server.properties &
测试
创建主题
./kafka_2.13-3.0.0/bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 --partitions 2
发送消息
./kafka_2.13-3.0.0/kafka-console-producer.sh --broker-list localhost:9092 --topic test
消费消息
./kafka_2.13-3.0.0/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
需要交流学习可以关注公众号【温故知新之java】,互相学习,一起进步。