Kafka Consumer

Kafka Consumer是Kafka事件(消息)的消费端客户端,它是Kafka的关键组件之一。为了确保Kafka集群的高效运行,Kafka的客户端被设计为富客户端,例如,消费者组中的分区分配就是在客户端完成的。

Kafka基本概念

Kafka是一个高吞吐、低延迟、可水平扩展的分布式流数据平台。核心是一个基于发布/订阅模式的分布式消息系统,以持久化日志的形式存储数据流,兼具消息队列、数据集成和流处理能力。其通过“主题-分区”模型实现数据的并行处理和无限扩展,并借助多副本机制保障高可用与数据可靠性。生产者和消费者可异步解耦,实现每秒百万级的消息处理,是构建实时数据管道和流式应用的核心基础设施。

理解Consensus算法 Raft

Raft与Paxos算法一样,都是为解决分布式共识问题提出的一种算法。相比Paxos更侧重于理论上的简洁与优美,Raft则更注重工程上的易于理解与实现。可以将Raft与ZAB协议比较,思路和步骤非常相似,但实现过程相对更巧妙一点

Raft算法将一致性算法拆解成了三个相对独立的子问题,如果三个问题都能得到保证,也就能达到算法想要的目标

  1. Leader Election:选举出一个单一Leader负责log的所有操作,Strong Leader极大的简化了算法的设计
  2. Log Replication:Leader从Client获取Log,并在其他的Server之间Replicate
  3. Safety:保证Log和Committed State的一致性