iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
DevOps

玩耍開源k8s30天系列 第 17

day17 : kafka服務應用 on K8S (上)

kafka是一套與昨天的NATS類似的分布式MQ系統,會用這兩套也不是想要做差異比較,單純只是有多一個可以選擇的而已,與NATS不同kafka在運行上還有依賴zookeeper,雖然今年釋出的kafka 2.8版本可以改為依賴quorum不用zookeeper的運行方式,不過官方也說明不建議使用於生產環境。

kafka的架構主要是broker topic partition replica ,使用者區分為producer和consumer,使用者的角色類似NATS的pub/sub,架構如下
https://ithelp.ithome.com.tw/upload/images/20210917/20139661EHyQ1VevjE.png

而kafka的producer另外可以帶入寫入的acknowledgment,確保訊息送到kafka後sync給replicas的機制
acks=0:Producer將不會等待acknowledgment(可能資料遺失) ;
acks=1:為預設值,Producer將等待Leader acknowledgment(限制資料遺失)
acks=all:Leader + replicas acknowledgment (無資料遺失)
而consumer讀取資料時,會再需要consumer group訂閱topic,一個partition可以提供給多個consumer group收取訊息,但是在一個consumer group內一個partition的訊息只能給一個consumer收,另外要注意如果有新的consumer加入consumer group將會發生rebalance的狀況重新分配分區的接收,這段時間是不允許consumer group內的consumer收訊息的喔。


上一篇
day16 : NATS 、NATS Streaming、JetStream服務應用 on K8S (下)
下一篇
day18 : kafka服務應用 on K8S (下)
系列文
玩耍開源k8s30天31

尚未有邦友留言

立即登入留言