Apache Kafka扩展包在Laravel中有什么用?

发布时间 - 2021-09-24 00:00:00    点击率:

下面由laravel教程栏目给大家推荐apache kafka扩展包,希望对需要的朋友有所帮助!

Laravel Kafka 扩展包(https://github.com/mateusjunges/laravel-kafka)让你在 Laravel 应用中使用 Apache Kafka 生产者和消费者变得简单。使用 publishOn 方法,可以让你流畅的配置和发布消息:

use Junges\Kafka\Facades\Kafka;

Kafka::publishOn('broker', 'topic')
    ->withConfigOption('property-name', 'property-value')
    ->withConfigOptions([
        'property-name' => 'property-value'
    ]);

下面展示如何通过这个包在 Laravel 应用中向 Kafka 发送消息:

use Junges\Kafka\Facades\Kafka;

/** @var \Junges\Kafka\Producers\ProducerBuilder $producer */
$producer = Kafka::publishOn('broker', 'topic')
    ->withConfigOptions(['key' => 'value'])
    ->withKafkaKey('your-kafka-key')
    ->withKafkaKey('kafka-key')
    ->withHeaders(['header-key' => 'header-value']);

$producer->send();

这里是消费者订阅消息的示例:

use Junges\Kafka\Facades\Kafka;

$consumer = Kafka::createConsumer('broker')->subscribe('topic');

// 通过回调函数处理:
$consumer->withHandler(function(\RdKafka\Message $message) {
    // 消息处理
});

// Invokable handler:
class Handler
{
    public function __invoke(\RdKafka\Message $message){
        //消息处理
    }
}

$consumer->withHandler(Handler::class)

这个包的其他功能请见 readme:(https://github.com/mateusjunges/laravel-kafka/blob/master/README.md)

  • 最大消息消费数量配置
  • 死信队列 - 维基百科 配置
  • 中间件配置
  • 在测试中使用 Kafka::fake() 方法模拟 Kafka 生产者
  • 开发模式下开启调试
  • 消息体可配置

这个包需要 rdkafka 扩展提供 Kafka 生成级别高效的 PHP 客户端。 Github 上有包详细的安装说明,和 源码 。

原文地址:https://laravel-news.com/laravel-kafka-package

译文地址:https://learnku.com/laravel/t/61072


# laravel  # 让你  # 上有  # 回调  # 请见  # 客户端  # 中向  # 发送消息  # 维基百科  # 给大家推荐  # 模式下 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用JavaScript实现文本编辑器_光标和选区怎么处理  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  如何快速上传自定义模板至建站之星?  Laravel如何使用Collections进行数据处理?(实用方法示例)  Python文本处理实践_日志清洗解析【指导】  网易LOFTER官网链接 老福特网页版登录地址  如何在云主机上快速搭建网站?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  JavaScript如何实现路由_前端路由原理是什么  Python制作简易注册登录系统  如何为不同团队 ID 动态生成多个独立按钮  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  想要更高端的建设网站,这些原则一定要坚持!  郑州企业网站制作公司,郑州招聘网站有哪些?  bootstrap日历插件datetimepicker使用方法  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  如何在服务器上三步完成建站并提升流量?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel如何配置Horizon来管理队列?(安装和使用)  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  5种Android数据存储方式汇总  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  如何快速查询域名建站关键信息?  如何撰写建站申请书?关键要点有哪些?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  EditPlus中的正则表达式 实战(2)  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  千库网官网入口推荐 千库网设计创意平台入口  iOS发送验证码倒计时应用  魔方云NAT建站如何实现端口转发?  微信小程序 input输入框控件详解及实例(多种示例)  Linux系统命令中tree命令详解  如何确认建站备案号应放置的具体位置?  利用python获取某年中每个月的第一天和最后一天  如何选择可靠的免备案建站服务器?  EditPlus中的正则表达式 实战(4)  Laravel如何优化应用性能?(缓存和优化命令)  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  什么是javascript作用域_全局和局部作用域有什么区别?