laravel框架中如何使用rdkafka的消费者

1. 运行环境

1). 当前使用的 Laravel 版本?

laravel版本是 Laravel Framework 9.28.0
//: <> (使用 php artisan --version 命令查看)

2). 当前使用的 php/php-fpm 版本?

PHP 版本:
php8.0.2

php-fpm 版本:

3). 当前系统

mac
//: <> (期待数值 Windows 10 / Ubuntu 20.4 / CentOS 8 )

4). 业务环境

5). 相关软件版本

2. 问题描述?

之前一直用golang开发,消费kafka的时候,可以直接启用一个goroutine消费即可,但是php没有goroutine,那我应该怎么消费消息那?是放在一个cron任务里么?比如我的的cron任务每一分钟执行一次,然后在cron任务里消费kafka的数据。
那如果cron任务一分钟没有把kafka里面的数据消费完,会有什么影响么?

3. 您期望得到的结果?

4. 您实际得到的结果?

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

用 laravel 的队列处理,然后队列驱动换成 kafka。得先装 kafka 队列驱动相关 composer 包

1年前 评论
learngostudent (楼主) 1年前
  1. 安装rakfka扩展
  2. 安装php kafka扩展包
  3. 建立专用的kafka配置文件,包括kafka的链接信息,topic,消费组,分区数等参数
  4. copy demo稍微封装一个相对通用的包含生产者和消费者的服务组件
  5. 写console脚本执行消费,并可以把消费者的artisan命令加入守护进程supervisor进行守护,根据需要配置消费进程数量

注意点:消息消费的幂等性, 时效性,可靠性以及消费重试,错误处理等
消息体的包装:唯一ID,事件类型,生产创建时间等

1年前 评论
learngostudent (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!