kafka基于zookeeper运行,先安装zookeeper
1.下载zookeeper
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.6/apache-zookeeper-3.5.5-bin.tar.gz
2.解压zookeeper
tar -zxvf apache-zookeeper-3.5.5-bin
3.进入zookeeper配置目录
cd apache-zookeeper-3.5.5-bin/conf
4.重命名文件
cp zoo_sample.cfg zoo.cfg
5.编辑配置文件
vim zoo.cfg
修改内容,并在对应地址创建目录:
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
6.进入bin目录
cd ..
cd bin
启动zookeeper服务端
./zkServer.sh start
查看启动状态
./zkServer.sh status
启动zookeeper客户端
./zkCli.sh
7.zookeeper使用
1.创建节点
使用create命令,可以创建一个zookeeper节点。
create [-s] [-e] path data acl
其中-s表示顺序节点,-e表示临时节点。默认情况下,创建的是持久节点。
path是节点路径,data是节点数据,acl是用来进行权限控制的。
创建zk-test节点,内容为123,创建/zk-test/book,内容为233
create /zk-test 123
获取节点内容
get /zk-test
查看根目录下的子节点
ls /
查看zk-test下的子节点
ls /zk-test
更新节点内容
set /zk-test 456
删除节点
注:无法删除一个非空的节点
delete /zk-test
delete /zk-test/book
安装kafka
1.下载kafka
http://kafka.apache.org/downloads官网获取下载地址
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.1/kafka_2.11-2.3.1.tgz
tar -xzf kafka_2.11-2.3.0.tgz
#开启多个终端统一cd到目录下,下面开启多个终点使用介绍
cd kafka_2.11-2.3.0
2.开启多个终端
第一个终端(开启服务端)
启动kafka服务端
bin/kafka-server-start.sh config/server.properties
第二个终端(生产者)
启动kafka客户端并创建topic
创建一个名为test的topic,只有一个副本,一个分区
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
list命令查看topic
bin/kafka-topics.sh -list -zookeeper localhost:2181
启动producer并发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
其他终端(消费者)多个
启动consumer
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
php-rdkafka扩展安装
安装librdkafka
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka
./configure
make && make install
git clone https://github.com/arnaud-lb/php-rdkafka.git
cd php-rdkafka
phpize
./configure
make && make install
php.ini写入
extension=rdkafka.so
PHP代码引入kafka
composer require "nmred/kafka-php"