使用kafka

本文详细介绍了如何搭建Kafka,包括安装librdkafka库,安装PHP的Kafka插件,以及安装和配置Zookeeper。同时,文章还提供了启动Kafka生产者和消费者的具体步骤,帮助读者理解Kafka的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。并且kafka通过zookeeper来管理服务器和集群拓扑,相当于管理了kafka的各个节点组件,所以要使用kafka,是要搭配着zookeeper来使用的

如何搭建

1、安装kafka

先安装安装librdkafka 库 

git clone https://github.com/edenhill/librdkafka.git
./configure
make
sudo make install

然后安装php关于kafka的插件

git clone https://github.com/arnaud-lb/php-rdkafka.git
 
#生成configure文件
phpize 
 
#编译安装
./configure --with-php-config=/usr/local/php74/bin/php-config
make
make install 
 
#在php.ini 文件中配置 rdkafka扩展
vim /usr/local/php74/etc/php.ini
  extension=rdkafka.so
 
#重启PHP和nginx
systemctl restart php-fpm.service
systemctl restart nginx.service

#查看扩展是否生效
php -m

还可以去http://pecl.php.net/package/rdkafka 下载插件。

2、安装zookeeper

先安装zookeeper

因为zookeeper3.5之后的版本都是免安装版,都是直接解压就可以用,但是我们待会需要安装php的zookeeper插件,又需要zookeeper源码安装,所以我们分成两种,免安装版的用来命令行管理kafka,源码安装的zookeeper用来配合安装php插件

下载地址 http://apache.communilink.net/zookeeper/

然后选择3.5.6版本,复制下载链接,在自己的服务器上

wget http://apache.communilink.net/zookeeper/zookeeper-3.5.6/apache-zookeeper-3.5.6.tar.gz

tar -zxvf apache-zookeeper-3.5.6.tar.gz

进入apache-zookeeper-3.5.6,会发现没有configure文件,这时候需要其他操作,这里推荐其他网友的方法,地址: https://erik.xyz/2019/07/30/php-pei-zhi-zookeeper3-5-5-kuo-zhan/

安装好zookeeper,以及PHP的插件

然后下载bin版本,这个是直接解压就能用的

wget http://apache.communilink.net/zookeeper/zookeeper-3.5.6/apache-zookeeper-3.5.6-bin.tar.gz

tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz

修改配置文件

cp /usr/local/zookeeper3.5_bin/conf/zoo_sample.cfg /usr/local/zookeeper3.5_bin/conf/zoo.cfg

vim /usr/local/zookeeper3.5_bin/conf/zoo.cfg

里面配置项的定义,可以参考这位大佬写的说明:https://www.cnblogs.com/skyl/p/4854553.html

下面开始尝试使用kafka

3、如何把kafka跑起来

修改kafka配置文件

vim  /usr/local/kafka_2.13_bin/config/server.properties

主要是修改advertised.listeners和log.dirs

advertised.listeners主要是用来监听内网的,还有个listeners是用在内网的

但是最终都会用到listeners这个参数,所以外网的就需要advertised.listeners和listeners都要配置

内网的只需配置listeners

具体配置文件参数是啥意思看这位大佬的:https://blog.youkuaiyun.com/u010416101/article/details/53916678

还有这位大佬的 https://www.cnblogs.com/yinchengzhe/p/5111635.html

启动kafka 记得添加-daemon,指明后台运行模式

/usr/local/kafka_2.13_bin/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.13_bin/config/server.properties

开启kafka生产者

/usr/local/kafka_2.13_bin/bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic testtopic

开启kafka消费者

这里有个坑,大家一定要看看

很多资料里都是

/usr/local/kafka_2.13_bin/bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic testtopic

事实上这是很旧版本的写法,意思就是讲消息存在zookeeper中,所以这里是写--zookeeper 127.0.0.1:2181,不知道大家还记得上面我们改zookeeper的配置文件的时候写的端口号么,就是2181,但是新版本的没有这个选项了,得换命令

下面才是新版本的

/usr/local/kafka_2.13_bin/bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092  --topic testtopic --from-beginning

--bootstrap-server意思是把消息存在kafka自己中,所以这时候得注意,端口得写成 :9092,kafka默认的地址

通过查看consumer的配置文件也能知道这个

vim /usr/local/kafka_2.13_bin/config/consumer.properties

接下来就试下在生产者那个界面输入东西,看看消费者这边能不能再打印出来

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值