
在大數據學習當中,主要的學習重點就是大數據技術框架,針對于大數據處理的不同環節,需要不同的技術框架來解決問題。以Kafka來說,主要就是針對于實時消息處理,在大數據平臺當中的應用也很廣泛。大數據學習一般都有哪些內容,今天我們就主要來分享Kafka入門。

Kafka的基本介紹
Kafka現在是Apache的開源項目之一,但是最初的研發,是由Linkedin公司開發的,主要是針對于日志收集和消息收集等場景下的分布式消息系統。
Kafka基于zookeeper協調的分布式日志系統(也可以當做MQ系統),常見可以用于web/nginx日志、訪問日志,消息服務等等。Kafka的優勢:
以時間復雜度為O(1)的方式提供消息持久化能力,即使對TB級以上數據也能保證常數時間的訪問性能。
高吞吐率。即使在非常廉價的商用機器上也能做到單機支持每秒100K條消息的傳輸。
支持Kafka Server間的消息分區,及分布式消費,同時保證每個Partition內的消息順序傳輸。
同時支持離線數據處理和實時數據處理。Kafka的設計原理
一個典型的Kafka集群中包含若干Producer,若干Broker,若干Consumer,以及一個Zookeeper集群。
Kafka通過Zookeeper管理集群配置,選舉Leader,以及在Consumer Group發生變化時進行Rebalance。Producer使用push模式將消息發布到Broker,Consumer使用Pull模式從Broker訂閱并消費消息。Kafka專用術語:
Broker:消息中間件處理結點,一個Kafka節點就是一個broker,多個broker可以組成一個Kafka集群。
Topic:一類消息,Kafka集群能夠同時負責多個topic的分發。
Partition:topic物理上的分組,一個topic可以分為多個partition,每個partition是一個有序的隊列。
Segment:partition物理上由多個segment組成。
offset:每個partition都由一系列有序的、不可變的消息組成,這些消息被連續的追加到partition中。partition中的每個消息都有一個連續的序列號叫做offset,用于partition唯一標識一條消息。
Producer:負責發布消息到Kafka broker。
Consumer:消息消費者,向Kafka broker讀取消息的客戶端。
Consumer Group:每個Consumer屬于一個特定的Consumer Group。
關于大數據技術-Kafka入門,以上就為大家做了一個簡單的介紹了。Kafka在大數據系統平臺的搭建當中,被應用得越來越廣泛,掌握Kafka框架,也是很有必要的。