使用php連接kafka

使用Rdkafka

Rdkafka是PHP連接kafka的擴展,跟mysqli,redis同理

rdkakfka 文檔地址:https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/book.rdkafka.html

High-level consumer 是高級消費者,Low-level consumer 是低級消費者模式

兩者區別是,高級的基本用的是那些已經封裝好的函數,很多配置項不需要你配置,不過自由度不高

低級的是使用未封裝好的函數,很多配置項給自己配置,就是很麻煩,其實很多配置用默認的纔是最優解,自己瞎設置有時候反而效率更差

所以我這邊推薦使用高級模式

具體代碼直接複製官網的demo改成自己想要的方法就好

這裏主要是討論一個問題,高級模式下,如何讓多個消費者消費同一個主題,這種場景主要是當生產者突然大批量生產主題的時候,一個消費者估計喫不消;因爲kafka只允許同一個組別的只有一個消費者來消費隊列

方法:將數據平均的分在不同的主題下,然後開啓多個消費者對這些主題進行消費

生產者代碼如下

第二個紅框框就是數據分配到不同的主題上,而主題就用一個數組保存起來,作爲配置項

消費者代碼就不貼了,就是兩個消費者代碼是一樣的,但是訂閱的主題是不一樣的

這樣就能實現在高級消費者模式下,開啓多個消費者對同一個數據進行消費

那如果同一條數據需要多個消費者都消費一次呢,也就是將數據A廣播給消費者a,b,c,d 然後a,b,c,d都需要消費A

只需要把消費者的組別設置成不一樣的,但是訂閱同一個主題即可

也就是消費者1

消費者2

然後開啓兩個消費者,兩個消費者就都能消費數據A了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章