Kafka是开源事件流软件,可允许您构建事件驱动系统 。虽然有其他指南,但我希望专注于可视化Kafka背后的主要概念 。这样,当你阅读其他指南时,你会感到更自信 。
有那个,让我们开始!
基本在我们开始之前,让我们确保我们在关于Kafka的同一页面上 。它是事件流软件 。它允许后端服务(通常在微服务体系结构中)彼此通信 。
文章插图
> Two services communicating via Kafka
生产者和消费者生产者和消费者是在Kafka中倾听或发送消息的服务 。这些服务是您的后端服务 。
文章插图
> Consumer and Producer
服务可以是消费者和生产者 。
文章插图
> A service listening to messages and consuming them
主题 Topic主题是生产者可以发送消息的地址 。其他服务可以倾听这些主题 。
文章插图
> A service emitting a message and a service receiving a message from a Kafka topic
服务可以侦听并将消息发送到尽可能多的主题 。
文章插图
还有一个消费者组的概念 。这是一组充当单一消费者的服务 。
文章插图
> A consumer group listening to topic B
对于任何用于消费者组的消息,Kafka将该消息路由到单个服务 。这有助于您加载平衡消息 。和规模消费者!
文章插图
> A message going into a single service with a consumer group
一个主题充当邮件的队列 。让我们走这一点 。首先,发送消息 。
文章插图
> Producer sending message to Kafka topic.
然后,将记录并存储在此队列中的消息 。此消息无法更改 。
文章插图
> Message getting stored on the queue
该消息也被发送给主题的任何消费者 。但是,该消息永久且无法编辑队列 。
文章插图
> A copy of the message being stored on the queue and sent to consumer.
让我们发送另一条消息 。只是为了回家 。
文章插图
> Sending a second message to Topic A
就像以前一样,此消息将被发送到消费者并存储在队列中 。您无法更改消息,它们将永久存储 。
(P.S.如果有太多或经过一段时间),您可以配置Kafka主题以删除这些消息)
文章插图
> Second message being stored.
这是我们的Kafka集群中的每个主题
文章插图
【可视化Kafka】> Messages being queued up in topics
这些不可变的队列允许我们异步地存储消息,无论生产者或消费者是否下降 。它还保证了消息的正确性(它们是不可替代的) 。
让我们开辟这些Kafka主题,看看内部 。
分区我撒了谎 。一个Kafka主题不是一个队列,而是实际组成了许多名为Partitions的队列!他们帮助一个主题规模 。
文章插图
> A topic with two partitions
当一个生产者帖子到一个主题时,该消息被路由到单个分区 。
文章插图
> A message entering a topic, going to a partition
消费者会听取所有分区并消耗所有人的事件 。
文章插图
> A message being consumed from a partition
默认情况下的生产者将为主题发送消息 。主题将确定消息将转到哪些分区 。默认情况下,将通过循环策略分配消息 。
文章插图
> A producer writing to a topic, which is writing to multiple partitions
您可以配置主题(不是服务)以将消息拆分为不同的分区 。例如,如果您正在处理用户消息(并且具有用户ID),则可以确保该用户留在同一分区内的消息 。您可以通过散列用户ID来执行此操作,然后通过分区的数量调制它 。你明白了 。我希望 。
推荐阅读
- Docker可视化管理:Portainer中文版
- Serial Studio 分享一个多功能串口数据可视化工具
- Excel用REPT函数做可视化,实在太帅了
- Linux查看硬件信息超强命令sar,以及可视化工具ksar
- Kafka生产者哪些重要的参数是我们需要注意的?
- 30分钟带你了解「消息中间件」Kafka、RocketMQ
- 10分钟快速搭建小程序管理后台,云开发CMS搭建可视化后台
- 一个Golang版丝滑的可视化库
- Kafka实时API探秘
- Python中的时间序列数据可视化的完整指南