Kafka是一个分布式发布-订阅消息系统,具有高吞吐量、低延迟、可扩展性和容错性等特点。下面将详细介绍Kafka的架构。
Kafka的架构包括以下组件:
话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名。
生产者(Producer):能够发布消息到话题的任何对象。
服务代理(Broker):已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群。
消费者(Consumer):可以订阅一个或多个话题,并从Broker拉取数据,从而消费这些已发布的消息。
Kafka的基本原理如下:
生产者将数据生产出来,交给Broker进行存储。
消费者需要消费数据时,从Broker中拉取数据,并完成一系列对数据的处理操作。
多个Broker协同合作,生产者和消费者部署在各个业务逻辑中被频繁调用。这三者通过Zookeeper管理协调请求和转发,实现高性能的分布式消息发布订阅系统。
Kafka使用Zookeeper的作用:
Kafka集群、生产者和消费者都依赖于Zookeeper来保证系统的可用性。
Kafka使用Zookeeper作为其分布式协调框架,将消息的生产、存储和消费过程结合在一起。
Kafka借助Zookeeper,在无状态的情况下建立起生产者和消费者的订阅关系,并实现负载均衡。
Kafka的特性包括:
高吞吐量、低延迟:Kafka每秒可以处理几十万条消息,延迟最低只有几毫秒。
可扩展性:Kafka集群支持热扩展。
持久性、可靠性:消息被持久化到本地磁盘,并支持数据备份防止数据丢失。
容错性:允许集群中节点失败,保证系统的可靠性。
高并发:支持数千个客户端同时读写。
Kafka的应用场景包括:
日志收集:可以用Kafka收集各种服务的日志,通过Kafka以统一接口服务的方式开放给各种消费者。
消息系统:用于解耦生产者和消费者,缓存消息等。
用户活动跟踪:记录用户的各种活动,如浏览网页、搜索、点击等,进行实时监控分析或离线分析和挖掘。
运营指标:记录运营监控数据,包括分布式应用的数据和操作的集中反馈等。
流式处理:用于实时处理数据的流式处理框架,如Spark Streaming和Storm。
Learn more:
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!