【Kafka】kafka架构

Kafka

分布式、基于发布订阅模式 的存储队列

使用场景

大数据下的负载均衡、缓冲
【Kafka】kafka架构_第1张图片

发布、订阅模式:上游数据统一推送,下游按需拉取数据

kafka最新定义:开源的分布式事件流平台(event streaming Platform),用于高性能数据管道、流分析、数据集成和关键任务应用

消息队列

常用消息队列:kafka、ActiveMQ、RabbitMQ、RocketMQ等

在大数据场景主要采用Kafka作为消息队列

传统消息队列的应用场景:缓存/消峰解耦异步通信

缓存/消峰:
【Kafka】kafka架构_第2张图片

解耦:

【Kafka】kafka架构_第3张图片

异步处理:

【Kafka】kafka架构_第4张图片

消息队列的两种模式

点对点

【Kafka】kafka架构_第5张图片

订阅/发布

【Kafka】kafka架构_第6张图片

Kafka的基础架构

Producer(生产者)

Consumer(消费者)

Topic(主题)

  1. 为方便拓展,并提高吞吐量,一个topic分为多个partition

如图:TopicA分为三个partition,放在三台服务器上broker0、broker1、broker2

【Kafka】kafka架构_第7张图片

  1. 配合分区的设计,提出消费者组的概念,组内每个消费者并行消费

【Kafka】kafka架构_第8张图片

  1. 为提高可用性,为每个partition增加若干副本,类似NameNode HA【Kafka】kafka架构_第9张图片

kafka的副本分为leader和follower,正常情况下消费者只消费leader,如果leader挂掉,follower有条件成为leader,被消费者消费

  1. Zookeeper 记录Kafka的信息,2.8.0版本之后可以配置不采用ZK

zookeeper记录的信息包括:

  1. 节点状态:/brokers/ids/[0,1,2] 表示有0,1,2三台服务器在使用
  2. leader信息:/brokers/topics/first/partitions/0/state “leader”:0,”isr”:[0,2] 表示partition0的leader是broker0上的副本,在broker0、和broker2上均有副本

【Kafka】kafka架构_第10张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hc5HeGUY-1660635771486)(…/AppData/Roaming/Typora/typora-user-images/image-20220816151354117.png)]

你可能感兴趣的:(Kafka,kafka,架构)