Kafka 消费者

消费者与消费组

消费者(Consumer)负责订阅Kafka中的主题(Topic),并且从订阅的主题上拉取消息。

与其他一些消息中间件不同的是:在Kafka的消费理念中还有一层消费组(Consumer Group)的概念,每个消费者都有一个对应的消费组。当消息发布到主题后,只会被投递给订阅它的每个消费组中的 一个 消费者。

下面的例子中,主题中共有4个分区(Partition):P0、P1、P2、P3。有两个消费组A和B都订阅了这个主题,消费组A中有4个消费者(C0、C1、C2和C3),消费组B中有2个消费者(C4和C5)。按照Kafka默认的规则,最后的分配结果是消费组A中的每一个消费者分配到1个分区,消费组B中的每一个消费者分配到2个分区,两个消费组之间互不影响。每个消费者只能消费所分配到的分区中的消息。

每一个分区只能被一个消费组中的一个消费者所消费。

kafka

Kafka生产者客户端的整体结构是什么样子的?

一个正常的生产者逻辑需要具备以下几个步骤:

  • 配置生产者客户端参数以及创建相应的生产者实例
  • 构建待发送的消息
  • 发送消息
  • 关闭生产者实例
kafka

[转] kafka 如何体现消息的顺序性

顺序消息包括以下两方面:

  • 全局顺序
  • 局部顺序
kafka

kafka 对性能的优化

性能问题一般常出现在三个地方:

  • 网络
  • 磁盘
  • 复杂度

在 kafka 中性能的优化主要体现在三个方面:

  • Producer
  • Consumer
  • Borker

kafka 作为一个分布式队列,网络和磁盘更是优化的重中之重。kafka 中的优化手段主要有以下几种:

  • 压缩
  • 缓存
  • 批量
  • 并发
  • 算法
kafka

kafka 主题管理

对于 kafka 主题(topic)的管理(增删改查),使用最多的便是kafka自带的脚本。

kafka

kafka 问题列表

为什么选择Kafka? Kafka有什么优缺点?还用过什么同质类的其它产品,与Kafka相比有什么优缺点? Kafka的用途有哪些?使用场景如何? Kafka中的基本概念 Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么? Kafka中的HW、LEO、LSO等分别代表什么? kafka 主题管理 Kafka有哪几处地方有分区分配的概念?简述大致的过程及原理 Kafka生产者客户端...
kafka

kafka 如何保障数据可靠性?

Kafka 中采用了多副本的机制,这是大多数分布式系统中惯用的手法,以此来实现水平扩展、提供容灾能力、提升可用性和可靠性等。

我们对此可以引申出一系列的疑问:

  • Kafka 多副本之间如何进行数据同步,尤其是在发生异常时候的处理机制又是什么?
  • 多副本间的数据一致性如何解决,基于的一致性协议又是什么?
  • 如何确保Kafka 的可靠性?
  • Kafka 中的可靠性和可用性之间的关系又如何?

下面从副本的角度切入来看看Kafka如何保障数据一致性、数据可靠性等问题,主要包括副本剖析、日志同步机制和可靠性分析等内容。

kafka

Kafka Rebalance机制分析

Rebalance 本质上是一种协议,规定了一个 Consumer Group 下的所有 consumer 如何达成一致,来分配订阅 Topic 的每个分区。

例如:某 Group 下有 20 个 consumer 实例,它订阅了一个具有 100 个 partition 的 Topic 。正常情况下,kafka 会为每个 Consumer 平均的分配 5 个分区。这个分配的过程就是 Rebalance。

kafka