图解 Kafka,画得太好了

云时代架构

  • 基础
  • 生产者消费者
  • Topics 主题
  • Partitions 分区
  • 架构

其中的概念还是比较多的,下面通过图示的方式来梳理一下 Kafka 的核心概念,以便在我们的头脑中有一个清晰的认识。

基础

Kafka 是一套流处理系统,可以让后端服务轻松的相互沟通,是微服务架构中常用的组件。

生产者消费者

生产者服务 Producer 向 Kafka 发送消息,消费者服务 Consumer 监听 Kafka 接收消息。

一个服务可以同时为生产者和消费者。

Topics 主题

Topic 是生产者发送消息的目标地址,是消费者的监听目标。

一个服务可以监听、发送多个 Topics。

Kafka 中有一个【consumer-group(消费者组)】的概念。

这是一组服务,扮演一个消费者。

如果是消费者组接收消息,Kafka 会把一条消息路由到组中的某一个服务。

这样有助于消息的负载均衡,也方便扩展消费者。

Topic 扮演一个消息的队列。

首先,一条消息发送了。

然后,这条消息被记录和存储在这个队列中,不允许被修改。

接下来,消息会被发送给此 Topic 的消费者。

但是,这条消息并不会被删除,会继续保留在队列中。

继续发送消息。

像之前一样,这条消息会发送给消费者、不允许被改动、一直呆在队列中。

(消息在队列中能呆多久,可以修改 Kafka 的配置)

Partitions 分区

上面 Topic 的描述中,把 Topic 看做了一个队列,实际上,一个 Topic 是由多个队列组成的,被称为【Partition(分区)】。

这样可以便于 Topic 的扩展。

生产者发送消息的时候,这条消息会被路由到此 Topic 中的某一个 Partition。

消费者监听的是所有分区。

生产者发送消息时,默认是面向 Topic 的,由 Topic 决定放在哪个 Partition,默认使用轮询策略。

也可以配置 Topic,让同类型的消息都在同一个 Partition。

例如,处理用户消息,可以让某一个用户所有消息都在一个 Partition。

例如,用户1发送了3条消息:A、B、C,默认情况下,这3条消息是在不同的 Partition 中(如 P1、P2、P3)。

在配置之后,可以确保用户1的所有消息都发到同一个分区中(如 P1)。

这个功能有什么用呢?

这是为了提供消息的【有序性】。

消息在不同的 Partition 是不能保证有序的,只有一个 Partition 内的消息是有序的。

架构

Kafka 是集群架构的,ZooKeeper是重要组件。

ZooKeeper 管理者所有的 Topic 和 Partition。

Topic 和 Partition 存储在 Node 物理节点中,ZooKeeper负责维护这些 Node。

例如,有2个 Topic,各自有2个 Partition。

这是逻辑上的形式,但在 Kafka 集群中的实际存储可能是这样的:

Topic A 的 Partition #1 有3份,分布在各个 Node 上。

这样可以增加 Kafka 的可靠性和系统弹性。

3个 Partition #1 中,ZooKeeper 会指定一个 Leader,负责接收生产者发来的消息。

其他2个 Partition #1 会作为 Follower,Leader 接收到的消息会复制给 Follower。

这样,每个 Partition 都含有了全量消息数据。

即使某个 Node 节点出现了故障,也不用担心消息的损坏。

Topic A 和 Topic B 的所有 Partition 分布可能就是这样的:

感谢阅读,希望对你有所帮助

翻译整理自:

https://timothystepro.medium.com/visualizing-kafka-20bc384803e7

(0)

相关推荐

  • 消息队列全面了解(二)

    一.再谈消息队列的应用场景 1.异步处理:例如短信通知.终端状态推送.App推送.用户注册等 2.数据同部:业务数据推送同步 3.重试补偿:记账失败重试 4.系统解耦:通讯上下行.终端异常监控.分布式 ...

  • (8条消息) 解决CDH6.2中的kafka消费不到数据问题

    被这个问题坑了很久,终于灵光一闪解决了这个问题.顺便记录一下. 需要设置--chroot,我设置成:/kafka 设置如下图:(名称随便取吧),重新部署问题解决 问题分析: 在按照帮助文档一步一步实现 ...

  • Kafka系列1:Kafka概况

    Kafka是当前分布式系统中最流行的消息中间件之一,凭借着其高吞吐量的设计,在日志收集系统和消息系统的应用场景中深得开发者喜爱.本篇就聊聊Kafka相关的一些知识点.主要包括以下内容: Kafka简介 ...

  • 母亲节,献给母亲节的沙画(太感人!)

    < 环球文摘 >每日经典,良师益友 ◆◆◆   为母亲节献礼, 祝愿天下所有的母亲: 青春永驻,健康长寿. 请发给您身边的每位朋友吧!

  • 荷兰画家威廉 汉雷斯笔下充满冲击力的水彩人体画,太诱人

    荷兰画家威廉 汉雷斯笔下充满冲击力的水彩人体画,太诱人! ······································································· ...

  • 最美的花画,太美了!

    西雅图的Bridget Beth Collins,就是那个最会发现并创造美的人. 每天,她都很喜欢和她的三个儿子一起去花园里散步,遇到了好看的叶子就把它们捡回家. 一花一叶,对她来说,都是大自然的馈赠 ...

  • 这画得太优雅了,也许这就是油画的魅力!

    油画世界  ArtYouhua --分享世界油画,欣赏各国艺术-- Daniel F.Gerhartz 丹尼尔·格哈茨 美国画家, (1965-) 丹尼尔·格哈茨(Daniel F.Gerhartz, ...

  • 10个画家,9个低俗;画俗容易,画雅太难

    导读:所谓"雅"必须要有自己独特的东西,这是一个至关重要的问题.10个画家,9个低俗!写俗书容易,画雅画太难!画家要靠画来讲话,不是随便题几个字就有古意. 10个画家,9个低俗! ...

  • 难怪ins上40w人都喜欢他的画,太美了!

    画乐猫课堂 开启一份兴趣,喵星人带你快乐画画. 包含彩铅.素描.水彩.国画.手绘.手帐等多类画种的线上课程,让你零基础也能画出好看作品. 公众号 别人画画要3年,这里只要3天 爱美之心人皆有之 窈窕淑 ...

  • “中国画”吴冠中画的太好,中国画在他笔下活了起来

    星星之火可以照路,您的支持将是我最大的动力. <双燕>有朋友问我:吴冠中的绘画精品,有哪些?我的回答:吴冠中先生,我国现代著名的画家.艺术家,亦是我国现代艺术史上最具争议的大师. 江南园林 ...

  • 钩织图解 像素画 杯垫 隔热垫

    前言   春节作品展 我们来拜年了 牛年大吉 正月初五  织友请大家吃饺子啦 *女人花* 三八花卉展 作品展示 [个人作品秀] 猫粒和她的微钩花 卫振英编织作品集 水浒一百零八将 钩针作品欣赏 一场娃 ...

  • 小哥哥画“这个杀手不太冷”小女孩仿妆,身材引争议,成品美到流鼻血

    巧蕊资讯关注2021-05-03 11:06 中国人戴中国表!中国造上海手表65周年真钻表,夜光防水,订购5折还赠送价值318元真皮表带! 白酒放了3年过期了!还能喝吗?美女酿酒师说出了答案 白酒&q ...