一、安装kafka(单机版)
因为现在的kafka安装包都自带zookeeper,所以如果是安装本地单机版kafka,不需要额外去安装zookeeper,使用自带的就可以了。
1、下载kafka 2.4版本
kafka下载地址:http://kafka.apache.org/downloads.html
# wget https://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.12-2.4.1.tgz # tar xf kafka_2.12-2.4.1.tgz # mv kafka_2.12-2.4.1 /apps/kafka
2、修改server.properties文件
# cd /apps/kafka/ # vim config/server.properties listeners=PLAINTEXT://:9092 host.name= 172.16.143.115 advertised.listeners=PLAINTEXT://172.16.143.115:9092
3、配置jdk环境
jdk下载地址:https://www.oracle.com/java/technologies/downloads/
# 上传jdk1.8到服务器 # 解压 # mkdir /usr/java # tar xf jdk-8u162-linux-x64.tar.gz -C /usr/java/ # 配置环境变量 # vim /etc/profile # jdk1,8 export JAVA_HOME=/usr/java/jdk1.8.0_162 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin # kafka export KAFKA_HOME=/apps/kafka # 重新加载使生效 # source /etc/profile
4、启动zookeeper
./bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties
5、启动kafka
# ./bin/kafka-server-start.sh -daemon ./config/server.properties
6、加入开机自启动
# vim /etc/rc.local # start kafka /apps/kafka/bin/zookeeper-server-start.sh -daemon /apps/kafka/config/zookeeper.properties /apps/kafka/bin/kafka-server-start.sh -daemon /apps/kafka/config/server.properties
7、创建开机启动服务项
# 创建zookeeper的服务启动项。jdk与kafka安装目录修改为自己的路径。
# vim /usr/lib/systemd/system/zookeeper.service [Unit] Description=Zookeeper service After=network.target [Service] Type=simple Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/jdk1.8.0_162/bin/" User=root Group=root ExecStart=/data/apps/kafka/bin/zookeeper-server-start.sh /data/apps/kafka/config/zookeeper.properties ExecStop=/data/apps/kafka/bin/zookeeper-server-stop.sh Restart=on-failure [Install] WantedBy=multi-user.target
创建kafka服务启动项
# vim /usr/lib/systemd/system/kafka.service [Unit] Description=Apache Kafka server (broker) After=network.target zookeeper.service [Service] Type=simple Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/jdk1.8.0_162/bin/" User=root Group=root ExecStart=/data/apps/kafka/bin/kafka-server-start.sh /data/apps/kafka/config/server.properties ExecStop=/data/apps/kafka/bin/kafka-server-stop.sh Restart=on-failure [Install] WantedBy=multi-user.target
重新加载服务启动项
# systemctl daemon-reload
启动服务
# 启动zookeeper systemctl restart zookeeper.service # 启动kafka systemctl start kafka.service # 查看服务状态 systemctl status zookeeper.service systemctl status kafka.service # 开机自启动 systemctl enable zookeeper.service systemctl enable kafka.service
二、Php 安装Kafka扩展
方法一:使用之前的remi源直接yum安装kafka扩展。
# 安装remi源 yum install epel-release -y yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # 使用remi源安装kafka扩展 yum --enablerepo=remi-php73 install php-rdkafka -y # 查看是否已经包含改模块了 [root@test-135 kafka]# php -m |grep rdkafka rdkafka # 重启php-fpm systemctl restart php-fpm
在php里添加访问kafka的配置,
# vim /apps/web/php/api/dev.php 'KAFKA' => [ 'host' => '172.16.143.115', 'port' => 9092, 'version' => '2.4.1' ], # php easyswoole restart
方法二:也可以用源码编译的方式安装php扩展。
1.安装librdkafka git clone https://github.com/edenhill/librdkafka.git cd librdkafka ./configure make && make install 2.安装php-rdkafka扩展,with-php-config改成自己的php-config路径 #git clone https://github.com/arnaud-lb/php-rdkafka.git wget https://pecl.php.net/get/rdkafka-3.0.3.tgz tar xf rdkafka-3.0.3.tgz cd rdkafka-3.0.3/ phpize ./configure --with-php-config=/usr/bin/php-config make && make install 3.修改php.ini文件,添加 extension = rdkafka.so 4.查看是否安装成功 php -m |grep rdkafka 5.重启php # systemctl restart php-fpm
三、配置kafka内外网都可以访问
默认advertised.listeners是不接受0.0.0.0的配置的,只能填具体的合法的IP地址或域名,所以要想实现kafka内外网都可以访问,则可以用主机名映射的方式实现。
将advertised.listeners=PLAINTEXT://kafkahost:9092 ,注释listeners和host.name,然后在内网服务器将kafkahost映射为内网ip,外网客户端将kafkahost映射为kafka服务器的外网IP。
修改配置,注释host.name和listeners
# vim config/server.properties #listeners=PLAINTEXT://0.0.0.0:9092 #host.name= 0.0.0.0 advertised.listeners=PLAINTEXT://kafkahost:9092
修改本地hosts文件,
# vim /etc/hosts 127.0.0.1 kafkahost
在kafka客户端,映射为内网地址:
# vim /etc/hosts 192.168.x.x kafkahost
在外网,比如本地,映射为外网地址:
# 编辑 C:\Windows\System32\drivers\etc\hosts 外网IP kafkahost
用kafka工具连接如下图:
四、kafka客户端连接工具kafka Tool
推荐一款kafka可视化的界面连接工具:kafka Tool
官方下载地址:https://www.kafkatool.com/download.html
选择自己对应的版本进行下载安装
填写相关的连接地址即可连上,在界面操作主题分区