大數據入門第十七天——storm上遊數據源 之kafka詳解(一)入門
一、概述
1.kafka是什麽
根據標題可以有個概念:kafka是storm的上遊數據源之一,也是一對經典的組合,就像郭德綱和於謙
根據官網:http://kafka.apache.org/intro 的解釋呢,是這樣的:
Apache Kafka® is a distributed streaming platform
ApacheKafka®是一個分布式流媒體平臺
l Apache Kafka是一個開源消息系統,由Scala寫成。是由Apache軟件基金會開發的一個開源消息系統項目。
l Kafka最初是由LinkedIn開發,並於2011年初開源。2012年10月從Apache Incubator畢業。該項目的目標是為處理實時數據提供一個統一、高通量、低等待的平臺。
l Kafka是一個分布式消息隊列:生產者、消費者的功能。它提供了類似於JMS的特性,但是在設計實現上完全不同,此外它並不是JMS規範的實現。
l Kafka對消息保存時根據Topic進行歸類,發送消息者稱為Producer,消息接受者稱為Consumer,此外kafka集群有多個kafka實例組成,每個實例(server)成為broker。
l 無論是kafka集群,還是producer和consumer都依賴於zookeeper集群保存一些meta信息,來保證系統可用性
2.主要feature
1:It lets you publish and subscribe to streams of records.發布和訂閱消息流,這個功能類似於消息隊列,這也是kafka歸類為消息隊列框架的原因
2:It lets you store streams of records in a fault-tolerant way.以容錯的方式記錄消息流,kafka以文件的方式來存儲消息流
3:It lets you process streams of records as they occur.可以再消息發布的時候進行處理
3.使用場景
在流式計算中,Kafka一般用來緩存數據,Storm通過消費Kafka的數據進行計算。
經典組合是:kafka+storm+redis
大數據入門第十七天——storm上遊數據源 之kafka詳解(一)入門