Apache Kafka擴(kuò)展包在Laravel中有什么用?

下面由laravel教程欄目給大家推薦apache kafka擴(kuò)展包,希望對(duì)需要的朋友有所幫助!

Apache Kafka擴(kuò)展包在Laravel中有什么用?

laravel Kafka?擴(kuò)展包(https://github.com/mateusjunges/laravel-kafka)讓你在 Laravel 應(yīng)用中使用 Apache Kafka?生產(chǎn)者和消費(fèi)者變得簡(jiǎn)單。使用?publishOn?方法,可以讓你流暢的配置和發(fā)布消息:

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

下面展示如何通過(guò)這個(gè)包在 Laravel 應(yīng)用中向 Kafka 發(fā)送消息:

use JungesKafkaFacadesKafka;  /** @var JungesKafkaProducersProducerBuilder $producer */ $producer = Kafka::publishOn('broker', 'topic')     ->withConfigOptions(['key' => 'value'])     ->withKafkaKey('your-kafka-key')     ->withKafkaKey('kafka-key')     ->withHeaders(['header-key' => 'header-value']);  $producer->send();

這里是消費(fèi)者訂閱消息的示例:

use JungesKafkaFacadesKafka;  $consumer = Kafka::createConsumer('broker')->subscribe('topic');  // 通過(guò)回調(diào)函數(shù)處理: $consumer->withHandler(function(RdKafkaMessage $message) {     // 消息處理 });  // Invokable handler: class Handler {     public function __invoke(RdKafkaMessage $message){         //消息處理     } }  $consumer->withHandler(Handler::class)

這個(gè)包的其他功能請(qǐng)見(jiàn)?readme:(https://github.com/mateusjunges/laravel-kafka/blob/master/README.md)

  • 最大消息消費(fèi)數(shù)量配置
  • 死信隊(duì)列 – 維基百科 配置
  • 中間件配置
  • 在測(cè)試中使用 Kafka::fake() 方法模擬 Kafka 生產(chǎn)者
  • 開(kāi)發(fā)模式下開(kāi)啟調(diào)試
  • 消息體可配置

這個(gè)包需要 rdkafka?擴(kuò)展提供 Kafka 生成級(jí)別高效的 PHP 客戶端。 Github 上有包詳細(xì)的安裝說(shuō)明,和?源碼?。

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

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享