科技速递|Kafka详解(一、核心概念)

本文主要目的是带你了解kafka , 知道Kafka有什么特性 , 能支持高性能、高可用 。 计算分四章来讲 。
第一章主要介绍Kafka的一些核心概念
第二章介绍生产者原理
第三章介绍broker原理
第二章介绍消费者原理
一、为什么需要消息系统
现在做开发应该或多或少都会用到消息系统吧 , 那么消息系统能解决什么问题了?常见使用消息系统主要可以用来解耦 , 这样消息两边就可以进行异步处理 , 而不需要同步进行 。 在访问量比较大的情况下也能应付比较大的流量 。
二、Kafka
【科技速递|Kafka详解(一、核心概念)】kafka是一个分布式消息队列 。 具有高性能、持久化、多副本备份、横向扩展能力 。 最初由Linkedin公司开发 , 于2010年贡献给了Apache基金会并成为顶级开源项目 。
科技速递|Kafka详解(一、核心概念)集群
上面便是Kafka的集群架构图 , 从图上便能看出来Kafka的由哪些组成
producer 消息发送端
broker 一个节点便是一个broker
topic 消息发送都需要指定一个主题
partition 分区 , 一个主题会分成多个分区 , 并且每个分区可以设置多个副本 , 已达到高可用 。
副本之间有主从之分 , 读写都是针对主的
consumer 消息消费者
consumer group 消费者组 , 一个分区的数据只能被一个消费者组中的消费者消费 。 多个消费者构成一个消费者组 , 提高吞吐量 , 同时又能避免重复消费
zookeeper 负载broker节点选举为controller , 并存储元数据信息
controller broker集群中需要选择一个broker为controller来负载整个集群的控制 , 比如说数据迁移 , broker的扩容缩容等 , 相当于也是主从架构的
Coordinator consumer group会选择一个broker作为Coordinator , 负责监控各个消费者 , 也会选择consumer中的leader , consumer的leader制定消费策略 , 并由Coordinator下发给其他consumer


    推荐阅读