第一章、Kafka概述
1.1、定义
Kafka
是一个分布式的基于公布/订阅模式的音讯队列,用于大数据实时处理畛域
1.2、音讯队列
1.2.1、利用场景
异步解决、解耦、削峰
1.2.2、应用音讯队列的益处
解耦
:容许你独立批改和扩大两边的处理过程,只有他们遵循雷同的接口标准可恢复性
:零碎的一部分组件生效后,不会影响到整个零碎。音讯队列升高了过程之间的耦合度,所以即便一个解决音讯的过程挂掉后,退出到队列的音讯依然可能在零碎复原后被解决缓冲
:无效管制音讯流的速度,解决生产和生产数据速度不统一的状况削峰
:能够在突发流量的时候扛住压力异步通信
:
1.2.3、音讯队列的两种模式
点对点:消费者被动拉取数据,音讯收到后将音讯从队列中革除
音讯生产者生产音讯发送到Queue中 而后音讯消费者从Queue中取出并且生产音讯。音讯被生产当前,Queue中不再有存储,所以音讯消费者不可能生产到曾经被生产的音讯。Queue反对存在多个消费者,然而对一个音讯而言,只会有一个消费者能够生产。
公布订阅:一对多模式,消费者生产数据之后不会革除数据;生产者将数据生产到topic中,订阅了该topic的消费者被动从该topic生产数据。公布到topic的音讯会被所有消费者生产
1.3、kafka架构
1.3.1要害概念
producer:生产数据的客户端
consumer:生产数据的客户端
consumer group:一组生产数据的客户端,一个消费者只能生产一个分区的数据,消费者之间互不影响
kafka cluster:Kafka的服务器集群
broker:一个broker就是一个kafka服务器。一个集群能够有多台broker,一个broker能够包容多个topic
topic:相当于一个队列
partition:为了实现零碎的延展性,会将一个topic散布到多台broker下,散布到每台broker下的队列就是一个partition。每个partition都是一个有序的队列
replica:为了保障kafka集群的高可用,避免一个broker宕机之后partition的数据失落,须要对partition做备份
leader:master partition主分区。生产者生产和消费者生产数据的对象都是leader
follower:slave partition从分区。从主分区中同步数据;当leader挂掉之后,某个follower会变成新的leader