Kafka学习笔记 --- Kafka简介

 

1.简述

Kafka是由Apache软件基金会开发的一个开源流处理平台,有Scala与Java编写。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中所有的动作流数据。

这种动作(包含用户所有的行为等数据)是现在网络上的许多社会功能的一个关键因素。这些数据通常由于吞吐量的要求而通过处理日志和日志的聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来同一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

 

2.特点

Kafka是一种高吞吐量的分布式订阅消息系统,有如下特征:

  • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数据以TB的消息存储也能保持长时间的稳定性能。

  • 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。

  • 支持通过Kafka服务器的消费机制集群来分区消息。

  • 支持Hadoop并行数据加载。

 

3.相关的术语

  • Broker: Kafka集群包含一个或者多个服务器,这种服务器被称为broker;

  • Topic:每条发布到Kafka集群的消息都有一个类别,这种类别被称为Topic。(物理上不同的Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或者多个Broker上,但是用户需要指定消息的Topic即可生产或者消费数据而不关心数据存于何处);

  • Partition:Partition是物理上的概念,每个Topic包含一个或者多个Partition。

  • Producer:负责发布消息到Kafka Broker

  • Consumer:消息消费者,向Kafka Broker读取消息的客户端。

  • Consumer Group: 每个Consumer属于一个特定的Consumer Group(可以为每个Consumer指定group name,若不指定group name则属于默认的group)。

4.主要的三部分模块(如上图):

  • 发布&订阅

  • 处理

  • 存储

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