初識Kafka
Kafka的基本介紹
kafka是一個分佈式,分區的,多副本的,多訂閱者的消息發佈訂閱系統(分佈式MQ系統),可以用於搜索日誌,監控日誌,訪問日誌等。
最初由linkedin公司開發,使用scala語言編寫。
kafka對消息保存時根據 Topic
進行歸類 。
發送消息者稱爲:Producer
(生產者)。
消息接收者稱爲:Consumer
(消費者)。
kafka集羣由多個kafka實例組成每個實例server稱爲:Broker
(服務器)。
無論kafka集羣,還是producer
和consumer
都依賴於zookeeper
來保證系統可用性集羣保存一些meta
信息。
Kafka的好處
可靠性
:分佈式的,分區,複製和容錯。可擴展性
:kafka 消息傳遞系統輕鬆縮放,無需停機。耐用性
:kafka 使用分佈式提交日誌,這意味着消息會儘可能快速的保存在磁盤上,因此它是持久的。性能
:kafka 對於發佈和訂閱消息都具有高吞吐量。及時存儲了許多TB的消息,也爆出穩定的性能。kafka非常快
:保證零停機和零數據丟失。
分佈式的發佈與訂閱系統
apache kafka是一個分佈式發佈-訂閱消息系統和一個強大的隊列
,可以處理大量的數據,並使能夠將消息從一個端點傳遞到另一個端點
,kafka適合離線和在線消息消費
。
kafka消息保留在磁盤上,並在集羣內複製以防止數據丟失。
kafka構建在zookeeper同步服務之上。它與apache和spark非常好的集成,應用於實時流式數據分析。
kafka的主要應用場景
- 指標分析:通常用於操作監控數據輔助分析。
- 日誌的匯聚:在多節點,多業務生產數據的系統直接調用 kafka Producer 的API 發送數據。
- 流式處理:kafka 可以實時傳遞數據到實時計算框架中(sparkstreaming finlk)。