作者:禅与计算机程序设计艺术
1.简介
Apache Kafka是Apache软件基金会推出的一个开源分布式流处理平台,它最初由LinkedIn开发并于2011年9月正式发布,目前已成为 Apache 项目之一,是一个基于发布-订阅模式的分布式、高吞吐量、可容错、高可靠的消息系统,能够提供实时的消费和发送消息能力。Kafka具有以下特点:
1.高吞吐量:Kafka采用了“分布式”和“分区”的方式来提升性能。它支持在线水平扩展,可以支持任意数量的生产者和消费者同时读取数据,并且它保证每条消息被平均分配到各个分区。通过分区方式,Kafka能够让单台服务器上的集群承受更大的并发读写请求,而且不需要担心网络延迟带来的影响。
2.高可用性:由于Kafka的设计目标之一就是高可用,所以它天生具备内置的容错机制。当一个Broker宕机时,其它Broker将接管其工作负载。另外,通过多副本(Replica)机制,Kafka可以防止数据丢失。即使所有副本中的某个节点发生故障,Kafka仍然能够继续运行,不会造成数据的损坏或服务中断。文章来源:https://uudwc.com/A/Pmvag
3.可靠性:Kafka提供了多种数据持久化机制,例如零拷贝(Zero Copy),所以它可以在磁盘上快速且高效地存储数据。为了确保可靠性,Kafka采用了两套机制:ISR(In-Sync Replicas)和OSR(Out-of-Sync Replica)。ISR指的是当前与Leader保持同步的副本集;而OSR则是那些与Leader相隔太远的副本。当Leader发生故障时,其他副本变为新的Leader,这个过程称为选举(Election)。Kafka文章来源地址https://uudwc.com/A/Pmvag