作者:禅与计算机程序设计艺术
1.简介
Apache Kafka 是高吞吐量、低延迟、可扩展、可靠分布式消息系统。它的核心设计目标就是作为一个统一的消息队列服务,它可以作为网站的日志、系统监控指标、交易实时数据等不同类型的数据流进行实时的传输和存储。
其官方网站上对Kafka所定义的特征描述如下:
- 高吞吐量:Kafka被设计用来处理实时的数据流,因此可以轻松支持百万级的每秒传输数据量。
- 低延迟:Kafka采用了分区机制来提升数据的并行性和扩展性,每个分区都是一个可以被多个消费者同时处理的逻辑组,这样就可以保证数据处理的实时性。并且通过副本机制来保证数据不丢失。
- 可扩展性:Kafka允许集群动态伸缩,可以根据数据量增加或减少分区,从而实现负载均衡和资源的有效分配。
- 可靠性:Kafka通过对消息的备份、事务性生产和消费以及多种容错策略来确保消息的可靠传递。
- 消息发布订阅模型:Kafka支持基于主题的消息发布订阅模型,可以将相同类型的消息分发到不同的订阅者中。
- 支持数据压缩:Kafka提供压缩功能,能够对一定程度上减少数据大小,加快数据传输速度。
目前很多互联网公司比如知乎、豆瓣等都在用Kafka作为自己的基础架构之一,更别说其他的一些业务场景了。
2.基本概念术语说明
2.1 分布式消息系统
首先,我们要明白一个基本概念:分布式消息系统(Distributed Messaging System)。顾名思义,分布式消息系统就是基于分布式计算的异步通信协议,其中包括发布/订阅模型、点对点模式、主题/队列模式等。
版权归原作者 禅与计算机程序设计艺术 所有, 如有侵权,请联系我们删除。