kafka入门学习笔记(一)
一、 KAFKA概述
- kafka定义
Apache Kafka® is a distributed streaming platform. What exactly does that mean?
A streaming platform has three key capabilities:
-
Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.
-
Store streams of records in a fault-tolerant durable way.
Process streams of records as they occur.
Kafka is generally used for two broad classes of applications: -
Building real-time streaming data pipelines that reliably get data between systems or applications
-
Building real-time streaming applications that transform or react to the streams of data
kafka是一个分布式的流平台,特点:
1、发布和订阅消息,类似于消息队列;
2、以容错持久的方式存储消息;
3、即时消息处理流
主要应用方向:
1、构建实时管道流,在系统和应用之间
2、构建实时流应用,处理流数据,或者响应流数据
- kafka术语
以下图解释kafka中应用的术语和简要描述作用
Broker:Kfk集群中包含一个或者多个服务器,服务器节点称为broker。
Producer: 生产者即数据的发布者,该角色将消息发布到kfk的topic中;
Topics:每发布到kafka中的消息都有一个类别,这个类别称为topic;
Partition: topic中的数据分割为一个或者多个part,每个topic至少有一个或者多个part;
Offset:kfk存储文件的位移。
Leader:part中的leader,是负责读写的part,所有的读写都是通过leader路由,数据会广播给Follower;
Consumer:消费者可以从broker中读取数据。
Consumer Group:每个consumer属于一个group,消息只能被consumer group 中的某一个consumer消费;
以一个快递流程来形容整个术语
快递小哥相当于producer,快递就是msg,topic属于快递的一个类型,例如“大件,中件,小件”,每个broker相当于一个快递柜,而partition则是快递柜中的一类型号盒子。
整个关系梳理下,AA工业区有一个快递柜,快递柜上有三种尺寸的盒位,分别为1行为大件,2345行为中间,56行为小件。
顺丰快递小哥在送快递的时候先来到该快递柜(broker)。判断下这个快递的体积大小属于哪个尺寸(topic),然后在快递柜上面选择对应种类的行(partition)的盒位(offset)放置快递。
张三(consumer)收到快件短信的时候,来对应的盒位取出快递。
Consumer Group 可以理解为寄给公司的一个快递,只要公司中的任意一个人取走了快递,那么其他人都没法二次取快递。