Please enable JavaScript.
Coggle requires JavaScript to display documents.
Kafka (架構 (ReplicaManager (負責broker所有分區和副本訊息, 處理KafkaController請求, 副本狀態切換)…
Kafka
架構
ReplicaManager
負責broker所有分區和副本訊息
處理KafkaController請求
副本狀態切換
Partition
物理上概念
每個topic包含 1+ 個partition
consumer group
每個consumet隸屬特定group
未指定就屬於 default group
topic
訊息類別
producer
向topic發送訊息
broker
kafka server
consumer
訂閱並處理訊息者
zookeeper
協調管理kafka群集配置
Replication Leader
負責partition和consumer互動
what
流處理
scala+java
即時處理大量數據
apache基金會負責
一種訊息佇列
保證訊息跨機器時可準確送達
降低系統間的耦合
以磁碟為主的mq
LinkedIn所開發
即時處理龐大的資料傳遞工作
Consumer Group
逻辑上的概念
实现单播和广播两种消息模型的手段
同一个topic的数据,会广播给不同的group
同一个group中的worker,只有一个worker能拿到这个数据
同一个topic,每个group都可以拿到同样的所有数据,但是数据进入group后只能被其中的一个worker消费
group内的worker可以使用多线程或多进程来实现,也可以将进程分散在多台机器上
worker的数量通常不超过partition的数量,且二者最好保持整数倍关系
特性
高吞吐量
生產 50萬條訊息(約50mb)/s
消費 55萬條訊息(約110mb)/s
分散式
透過ZooKeeper調度集群
低延遲
大數據處理
可擴展
數據分區
支持單一 topic 排序
提供磁碟儲存持久化
應用
stream處理
街storm一類框架處理數據
網路遊戲
監控數據
傳統MQ
用戶追蹤
log數據收集
API
Streams
Kafka Streams DSL
數據轉換
map
filter
join
高階api
Processor API
低階api
直接處理狀態
彈性較大但手工部份變多
Producer
Consumer
Connectors
broker架構
角色
Topic : 放訊息的類別
包含Partition
分散式運算
確保Partition內部資料的順序性
不保證不同Partition之間的順序
一個Partition只能對應到一個Consumer
Producer : 向Topic發送訊息者
Broker : Kafka的伺服器
Consumer : 訂閱並處理訊息者
只支援從broker pull資料的模式
Zookeeper : 協調管理kafka的群集配置
利用中間的broker server來管理訊息處理
採用Zookeeper來管理分散式架構的broker
版本
Apache Kafka
Confluent Kafka
Cloudera/Hortonworks Kafka
工作流程
發佈-訂閱
隊列消息
WHY
處理小筆但大量資料時有很高的throughput