揭秘Kafka从入门到精通,架构最全详解

246 篇文章 0 订阅
246 篇文章 1 订阅

 

Kafka架构最全详解

   

Kafka,作为关键消息中间件,广泛应用于大型架构与顶尖企业。本篇深入解析Kafka架构,掌握其核心技术要点。


Kafka

Apache Kafka 是一个分布式发布-订阅消息系统,由LinkedIn开创的分布式发布-订阅消息系统,于2010年贡献给Apache基金会,迅速成为顶级开源项目,引领消息处理新潮流。

Kafka应用场景有:日志收集系统和消息系统。

3f3ba91e4761d2630b9c1103bbdbd284.jpeg

Kafka架构

Kafka架构,由多个组件组成,如下图所示:

c26a362fe166b8ae75d05ab547c396ae.jpeg


主要会包含:Topic、生产者、消费者、消费组等组件。

服务代理(Broker)

如下图所示:

f779c48d48ae32be35dccdf38a3877f7.jpeg


Topic(主题)

每个Topic可以被分成多个分区,每个分区在不同的Broker节点上进行存储。

Topic主题的数据以一系列有序的消息进行组织。


生产者(Producer)

可以选择将消息发送到特定分区,或让Kafka自动选择分区。

如下图所示:

af87b64b03eaa27ccc2140aceb2b0845.jpeg

生产者负责将消息进行缓冲和批量发送,以提高性能和吞吐量。


消费者(Consumer)

Consumer是Kafka的客户端,订阅并接收一个或多个主题的消息,直接从对应分区拉取数据,实现高效消息处理。

如下图所示:

80529391b792a45bedbc8bca30bccc0d.jpeg

消费者可按消费组形式组织,组内成员共享消费主题消息,有效实现负载均衡与容错机制,确保系统高效稳定运行。

Consumer Group(消费组)

如果消费者组中的消费者数量多于主题分区的数量,那么一些消费者将处于空闲状态。


ZooKeeper

ZooKeeper是Kafka使用的协调服务,用于管理和协调整个Kafka集群。

它负责维护Broker的元数据、主题的配置信息和消费者组的状态信息。

如下图所示:

b17c2c464fe95224c24a7ffe7d814767.jpeg

ZooKeeper还用于进行Leader选举、分区分配和故障恢复等操作。


 总结:

1. 主题(Topic):消息以流的形式存储在主题中,主题是消息的分类名。
2. 生产者(Producer):生产者是能够发布消息到主题的任何对象。生产者将数据发送到 Broker 代理。
3. 服务代理(Broker):已发布的消息保存在一组服务器中,这些服务器被称为代理(Broker)或 Kafka 集群。
4. 消费者(Consumer):消费者可以订阅一个或多个主题,并从 Broker 拉取数据,从而消费这些已发布的消息。
5. Zookeeper:Kafka 使用 Zookeeper 作为其分布式协调框架,用于保证系统的可用性,保存一些元信息,并实现负载均衡。
6. Consumer Group:组内多个的 Consumer 可以共用一个 Consumer Id,组内所有的 Consumer 只能注册到一个分区上去消费,一个 Consumer Group 只能到一个 Topic 上去消费。
7. 位移主题:位移主题的主要作用是保存 Kafka 消费者的位移信息。在 Kafka 新版本中,Consumer 的位移信息 offset 会作为普通消息提交到位移主题(_consumer_offsets)中。
8. 顺序写入和批量处理:Kafka 采用顺序写入和批量处理技术,使用消息累加器将多个消息批量发送,既节省带宽又提高了发送速度。
9. 消息压缩:Kafka 支持消息压缩,支持 gzip、snappy、lz4 格式,可以通过 `compression.type` 配置。
10. 页缓存和零拷贝技术:Kafka 在消息发送后,并没有等到消息写入磁盘后才返回,而是到 page cache 中就返回。同时,Kafka 使用零拷贝技术,提高了数据传输效率。
Kafka 的特性包括高吞吐量、低延迟、可扩展性、持久性、可靠性、容错性和高并发。Kafka 可以处理每秒几十万条消息,并且延迟可以低至几毫秒。它支持消息的持久化存储到本地磁盘,并允许数据备份以防止数据丢失。此外,Kafka 集群支持热扩展,可以灵活地应对不同的负载需求。

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技互联人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值