1 首先需要安装JDK
参考链接:https://blog.cnbuilder.cn/archives/linuxinstalljdk
yum -y list java*
yum install -y java-1.8.0-openjdk.x86_64
java -version
输入java -version,出现相应版本则安装成功。
2 安装zookeeper
参考链接: https://blog.cnbuilder.cn/archives/linuxinstallzookeeper
- 下载zookeeper镜像(注意!要下带bin的那个版本)
- 上传至服务器(rz -bye)
- 解压:
tar -zxvf zookeeper-3.4.10.tar.gz
- 配置环境变量:
- zookeeper 下 pwd 命令,复制路径。
- 配置:
vim /etc/profile
export zookeeper_home=/DATA/zookeeper/zookeeper-3.4.10(zookeeper目录路径)
source /etc/profile
sh $zookeeper_home/bin/zkServer.sh start
注意:最后一步若报错,请解压zookeeper后,把config目录下的zoo_sample.cfg改名为zoo.cfg即可。
3 安装kafka https://blog.csdn.net/weixin_39984161/article/details/91971731
- 下载kafka镜像
- 上传至服务器(rz -bye)
- 解压:
tar -zxvf xxx.tar.gz
修改配置 https://blog.csdn.net/msllws/article/details/106615536
#进入配置目录
cd kafka_2.12-2.5.0/config/
#备份配置文件
cp server.properties server.properties.bak
#修改配置文件
vim server.properties
#修改及添加以下配置
broker.id=1
listeners=PLAINTEXT://127.0.0.1:9092
advertised.listeners=PLAINTEXT://127.0.0.1:9092
''''''
本项目中
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://本机ip:9092
''''''
#其他自定义配置(根据实际修改)
zookeeper.connect=127.0.0.1:2181
zookeeper.connection.timeout.ms=18000
#保存退出
:wq
4 启动测试
先启动zookeeper
#移到工作目录
cd /opt/kafka/kafka_2.12-2.5.0/bin/
#启动kafka
./kafka-server-start.sh -daemon ../config/server.properties
#关闭kafka服务
./kafka-server-stop.sh
配置说明:
#配置说明
broker.id:当前机器在集群中的唯一标识。例如有三台Kafka主机,则分别配置为1,2,3。
listeners:服务监听端口。
advertised.listeners:提供给生产者,消费者的端口号,即外部访问地址。默认为listeners的值。
zookeeper.connect:zookeeper连接地址。如有集群配置,每台Kafka主机都需要连接全部zookeeper服务,实例如下:
zookeeper.connect=192.168.1.41:2181,192.168.1.42:2181,192.168.1.47:2181
zookeeper.connection.timeout.ms:zookeeper连接超时时间。
127.0.0.1是回送地址,协议立即返回不进行任何网络传输。
https://blog.csdn.net/u012814696/article/details/55098249
127.0.0.1 是一个环回地址,并不表示“本机”。0.0.0.0才是真正表示“本网络中的本机”。
在实际应用中,一般我们在服务端绑定端口的时候可以选择绑定到0.0.0.0,这样我的服务访问方就可以通过我的多个ip地址访问我的服务。 比如我有一台服务器,一个外网地址A,一个内网地址B,如果我绑定的端口指定了0.0.0.0,那么通过内网地址或外网地址都可以访问我的应用。但是如果我之绑定了内网地址,那么通过外网地址就不能访问。 所以如果绑定0.0.0.0,也有一定安全隐患,对于只需要内网访问的服务,可以只绑定内网地址。
测试创建topic
#移到工作目录
cd /opt/kafka/kafka_2.12-2.5.0/bin/
#创建topic
./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic topic1
#查看topic信息
./kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic topic1
测试消息:
#启动生产者控制台
./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic topic1
#启动消费者控制台(新开一个窗口)
./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic topic1 --from-beginning
5 配置可视化管理界面
链接: https://gitee.com/freakchicken/kafka-ui-lite
步骤:
- 下载kafka-ui-lite.jar包
- 启动命令
java -jar kafka-ui-lite.jar
- 启动后浏览器访问 http://ip:8889
- 配置参数,成功连接
https://www.jianshu.com/p/9e72b3942c59 kafka使用常见报错及解决方法
server.properties中有两个listeners。 listeners:启动kafka服务监听的ip和端口,可以监听内网ip和0.0.0.0(不能为外网ip),默认为java.net.InetAddress.getCanonicalHostName()获取的ip。advertised.listeners:生产者和消费者连接的地址,kafka会把该地址注册到zookeeper中,所以只能为除0.0.0.0之外的合法ip或域名 ,默认和listeners的配置一致。
查看端口可用命令:
netstat -anptl | grep 9092
出错:
/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/bin/java: No such file or directory 需要配置JAVA环境变量 https://blog.csdn.net/wulitaotao96/article/details/116944603