Apache Kafka---(1)

初識kafka

Apache Kafka是一種分佈式發佈-訂閱消息系統。具有分佈式,可劃分的特點,提供冗餘備份的持久性日誌服務。用於處理活躍的流式數據。

那麼Apache Kafka因何而生的呢?
由於一個大系統由各個小的子系統組成,同時搞定在線應用(消息)和離線應用(數據文件,日誌)會存在相應的難度,Kafka便由此而來。

相對比於其他消息系統(Active MQ和Rabbit MQ等),Kafka具有如下優點:
1.降低了系統組網複雜度
2.降低了編程複雜度

Apache Kafka的構架

如圖所示
這裏寫圖片描述
kafka的構架爲顯示分佈式構架,producers和consumers實現kafka的註冊的接口,數據從producers發送至brokers(承擔一箇中間緩存,分發的角色),brokers再將數據分發註冊到系統中的consumer,實現活躍的數據和離線處理系統之間的緩存。

幾個基本概念

1.Topic:特指kafka處的消息源(feeds of messages)的不同分類
2.Partition:Topi物理上的分組,一個Topic可分爲多個partition
3.Message:消息,它是通信的基本單位,每個producer可以向一個Topic發佈一些消息
4.Producers:消息和數據生產者,向kafka的一個topic發佈消息的過程
5.Consumers:消息和數據的消費者,訂閱Topic並處理其發佈的消息
6.Broker:緩存處理

消息的發送過程

這裏寫圖片描述
1.Producer根據指定的partition的方法,將消息發送給指定topic的partition裏
2.kafka集羣接收到producer發送過來的消息,並將其持久化到硬盤
3.Consumer從kafka集羣pull數據

Kafka的設計要點

1.直接使用linux文件系統的cache,高效緩存數據
2.數據在磁盤上存取代價爲O(1)
3.顯式分佈式,所有的Producer,Consumer和Broker都會有多個,並且均爲分佈式的,Producer和Broker沒有負載均衡,然而所有的Broker和Consumer都有在zookeeper註冊,保存一些元數據信息,如果有任意一個進行了修改,那麼zookeeper便會通知其他的Broker和Consumer更新信息

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