乐趣区

关于kafka:Kafka概述

第一章、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

退出移动版