Kafka官方介紹:Kafka是一個分布式的流處理平台(0.10.x版本),在kafka0.8.x版本的時候,kafka主要是作為一個分布式的、可分區的、具有副本數的日志服務系統(Kafka™ is a distributed, partitioned, replicated commit log service), 具有高水平擴展性、高容錯性、訪問速度快、分布式等特性;主要應用場景是:日志收集系統和消息系統
數據在Kafka上的分布簡單描述圖:
Kafka基本術語
======================================================================
Message(消息):傳遞的數據對象,主要由四部分構成:offset(偏移量)、key、value、timestamp(插入時間); 其中offset和timestamp在kafka集群中產生,key/value在producer發送數據的時候產生
Broker(代理者):Kafka集群中的機器/服務被成為broker, 是一個物理概念。
Topic(主題):維護Kafka上的消息類型被稱為Topic,是一個邏輯概念。
Partition(分區):具體維護Kafka上的消息數據的最小單位,一個Topic可以包含多個分區;Partition特性:ordered & immutable。(在數據的產生和消費過程中,不需要關注數據具體存儲的Partition在那個Broker上,只需要指定Topic即可,由Kafka負責將數據和對應的Partition關聯上)
Producer(生產者):負責將數據發送到Kafka對應Topic的進程
Consumer(消費者):負責從對應Topic獲取數據的進程
Consumer Group(消費者組):每個consumer都屬於一個特定的group組,一個group組可以包含多個consumer,但一個組中只會有一個consumer消費數據。