1、查看SpringBoot版本,下载对应的kafka
(1)我司用的是SpringBoot 2.0.2,那么kafka就应该下载2.1.x 版本
(2)kafka下载:https://kafka.apache.org/downloads
2、根据kafka版本选择对应的zookeeper
(1)下载kafka源码
(2)解压,找到下图文件
(3)打开文件查找zookeeper版本
(4)zookeeper下载:https://zookeeper.apache.org/doc/r3.4.1/releasenotes.html
3、安装JDK
(1)查看是否安装了JDK及其版本
java -version
(2)没有安装则进行安装
上传安装包到服务器,当前文件夹下使用如下命令安装
tar -zxvf 文件全名
(3)配置环境变量,编辑 /etc/profile文件:vi /etc/profile
,再输入 i 进入文件编辑模式,在文件内容的最底下加上以下配置内容
#jdk
export JAVA_HOME=/usr/local/java/jdk1.8.0_121
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
然后按esc推出编辑,输入 :wq! 保存修改内容并退出
(4)输入命令以下命令使修改后的配置文件生效(重新加载配置文件)
source /etc/profile
4、安装zookeeper
(1)解压zookeeper到opt目录下
tar -zxf zookeeper-3.4.13.tar.gz -C /opt/
(2)修改zookeeper环境变量:vi /etc/profile
#zookeeper
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.13
export PATH=$PATH:%ZOOKEEPER_HOME/bin
export ZO0 LOG DIR=/tem/zookeeper/log
(4)复制zookeeper配置文件
cd /opt/zookeeper-3.4.13/conf/
cp zoo_sample.cfg zoo.cfg
让修改过的配置文件生效:source /etc/profile
(5)启动
启动:/opt/zookeeper-3.4.13/bin/zkServer.sh start
查看状态:/opt/zookeeper-3.4.13/bin/zkServer.sh status
关闭:/opt/zookeeper-3.4.13/bin/zkServer.sh stop
5、安装kafka
(1)解压
tar -zxf kafka_2.12-2.1.1.tgz -C /opt/
(2)配置Kafka环境变量:vi /etc/profile
#kafka
export KAEKA_HOME=/opt/kafka_2.12-2.1.1
export PATH=$PATH:$KAFKA_HOME/bin
(3)修改kafka配置文件
vi /opt/kafka_2.12-2.1.1/config/server.properties
(4)让修改过的配置文件生效:source /etc/profile
(5)启动kafka:
(a)此启动,关闭窗口后,kafka会被关掉:
/opt/kafka_2.12-2.1.1/bin/kafka-server-start.sh /opt/kafka_2.12-2.1.1/config/server.properties
(b)nohup COMMAND > output.log 2>&1 &
这个是把标准输出和错误输出都一股脑地输出到output.log文件中。
nohup /opt/kafka_2.12-2.1.1/bin/kafka-server-start.sh /opt/kafka_2.12-2.1.1/config/server.properties > outup.log 2>&1 &
(c)nohup COMMAND > stdout.log 2> stderr.log &
会把COMMAND命令的标准输出输出到 stdout.log中,错误输出输出到 stderr.log中。
nohup /opt/kafka_2.12-2.1.1/bin/kafka-server-start.sh /opt/kafka_2.12-2.1.1/config/server.properties > nohup-kafka.log 2>&1 &
测试
创建1个分区,每个分区1个副本
./kafka-topics.sh --zookeeper localhost/myKafka --create --topic topic_1 --partitions 1 --replication-factor 1
查看分区信息
./kafka-topics.sh --zookeeper localhost/myKafka --list
查看topic_1信息
./kafka-topics.sh --zookeeper localhost/myKafka --describe --topic topic_1
创建5个分区,每个分区1个副本
./kafka-topics.sh --zookeeper localhost/myKafka --create --topic topic_2 --partitions 5 --replication-factor 1
打开新的命令窗口,开启消费消息
cd /opt/kafka_2.12-1.0.2/bin/
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_1
打开新的命令窗口,开启发送消息
cd /opt/kafka_2.12-1.0.2/bin/
./kafka-console-producer.sh --broker-list localhost:9092 --topic topic_1
在生产者窗口输入什么,消费者端就会打印什么。
问题:阿里云上安装好了kafka,外网为何不能访问?
1.安装了kafka的阿里云服务器关闭防火墙
2.端口加白:9092(kafka),2181(zookeeper)
3.修改kafka配置文件
listeners=PLAINTEXT://127.0.0.1:9092
advertised.listeners=PLAINTEXT://127.0.0.1:9092
zookeeper增加ip白名单
https://avoid.overfit.cn/post/5c99a73c073b40c1bde5fd1fd32cf7fe
1.进入zk客户端
输入命令:./bin/zkCli.sh -server[address]:[client_port]
例如:./bin/zkCli.sh -server[127.0.0.1]:[2181]
2.查看zk当前访问权限
输入命令:getAcl /
输出:‘’World,”anyone:cdrwa //表示所有用户都有权限
3.设置白名单ip网络段(zk版本要求3.5以上,一定要将127.0.0.1添加到ip白名单过滤)
输入命令:setAcl / ip:[ipaddress]:cdrwa,ip:127.0.0.1:cdrwa
例如:setAcl / ip:..*.224/27:cdrwa,ip:127.0.0.1:cdrwa
4.查看设置是否成功:getAcl /
5.如果要恢复所有ip皆可访问,则执行:setAcl / world:anyone:cdrwa