编辑
2023-11-25
后端
00
请注意,本文编写于 532 天前,最后修改于 532 天前,其中某些信息可能已经过时。

Kafka是一个分布式发布-订阅消息系统,具有高吞吐量、低延迟、可扩展性和容错性等特点。下面将详细介绍Kafka的架构。

Kafka的架构包括以下组件:

  1. 话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名。

  2. 生产者(Producer):能够发布消息到话题的任何对象。

  3. 服务代理(Broker):已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群。

  4. 消费者(Consumer):可以订阅一个或多个话题,并从Broker拉取数据,从而消费这些已发布的消息。

Kafka的基本原理如下:

  1. 生产者将数据生产出来,交给Broker进行存储。

  2. 消费者需要消费数据时,从Broker中拉取数据,并完成一系列对数据的处理操作。

  3. 多个Broker协同合作,生产者和消费者部署在各个业务逻辑中被频繁调用。这三者通过Zookeeper管理协调请求和转发,实现高性能的分布式消息发布订阅系统。

Kafka使用Zookeeper的作用:

  1. Kafka集群、生产者和消费者都依赖于Zookeeper来保证系统的可用性。

  2. Kafka使用Zookeeper作为其分布式协调框架,将消息的生产、存储和消费过程结合在一起。

  3. Kafka借助Zookeeper,在无状态的情况下建立起生产者和消费者的订阅关系,并实现负载均衡。

Kafka的特性包括:

  1. 高吞吐量、低延迟:Kafka每秒可以处理几十万条消息,延迟最低只有几毫秒。

  2. 可扩展性:Kafka集群支持热扩展。

  3. 持久性、可靠性:消息被持久化到本地磁盘,并支持数据备份防止数据丢失。

  4. 容错性:允许集群中节点失败,保证系统的可靠性。

  5. 高并发:支持数千个客户端同时读写。

Kafka的应用场景包括:

  1. 日志收集:可以用Kafka收集各种服务的日志,通过Kafka以统一接口服务的方式开放给各种消费者。

  2. 消息系统:用于解耦生产者和消费者,缓存消息等。

  3. 用户活动跟踪:记录用户的各种活动,如浏览网页、搜索、点击等,进行实时监控分析或离线分析和挖掘。

  4. 运营指标:记录运营监控数据,包括分布式应用的数据和操作的集中反馈等。

  5. 流式处理:用于实时处理数据的流式处理框架,如Spark Streaming和Storm。


Learn more:

  1. Kafka 架构和原理机制 (图文全面详解)-腾讯云开发者社区-腾讯云
  2. kafka架构详解 - 知乎
  3. Kafka架构及基本原理简析 - 掘金

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!