Producer
, Consumer
, 以及Broker
。Event key: "Alice"
Event value: "Made a payment of $200 to Bob"
Event timestamp: "Jun. 25, 2020 at 2:06 p.m."
Kafka 的高可擴展性(High Scalability)來自於 Producer 和 Consumer 之間的鬆耦合設計。
Producer只負責丟事件出去,不會管誰會接收;而Consumer則根據自己的需要隨時去拉取事件。彼此不會知道對方的存在,Producers也無需等待任何Consumers回應。
這樣的設計,讓系統能夠輕鬆地進行水平擴展。
以上,就是Kafka的基本觀念及角色。下一篇文章,我們會進一步深入探討這些角色的運作原理以及設定方式。
有關Kafka的說明,官方有一些資源個人覺得做得蠻用心也蠻詳盡的,無論是剛上手或需要進階的use case,都推薦大家參考:
個人覺得比多數的教學文章都更快上手,尤其是說明事件如何正確的被傳遞到Topic, Partition的部分
https://youtube.com/watch?v=J6adhl3wEj4&feature=shares
這邊也有一些文章可看, 例如有一篇在講他們拿掉zookeeper的過程也寫在這
https://www.confluent.io/blog/
https://www.confluent.io/blog/designing-events-and-event-streams-introduction-and-best-practices/
https://kafka.apache.org/intro
https://www.confluent.io/wp-content/uploads/confluent-kafka-definitive-guide-complete.pdf