Kafka概述

第一章、Kafka概述

1.1、定义

Kafka是一个分布式的基于发布/订阅模式的消息队列,用于大数据实时处理领域

1.2、消息队列

1.2.1、应用场景

异步处理、解耦、削峰

1.2.2、使用消息队列的好处

解耦:允许你独立修改和扩展两边的处理过程,只要他们遵循相同的接口规范
可恢复性:系统的一部分组件失效后,不会影响到整个系统。消息队列降低了进程之间的耦合度,所以即使一个处理消息的进程挂掉后,加入到队列的消息仍然可能在系统恢复后被处理
缓冲:有效控制消息流的速度,解决生产和消费数据速度不一致的情况
削峰:可以在突发流量的时候扛住压力
异步通信

1.2.3、消息队列的两种模式

点对点:消费者主动拉取数据,消息收到后将消息从队列中清除
消息生产者生产消息发送到Queue中 然后消息消费者从Queue中取出并且消费消息。消息被消费以后,Queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。
Kafka概述_第1张图片
发布订阅:一对多模式,消费者消费数据之后不会清除数据;生产者将数据生产到topic中,订阅了该topic的消费者主动从该topic消费数据。发布到topic的消息会被所有消费者消费
Kafka概述_第2张图片

1.3、kafka架构

Kafka概述_第3张图片

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

你可能感兴趣的:(Kafka概述)