kafka 简单理解 - Partition的读和写

1.kafka所采用的设计方式,盘子就是partition,每个人就是一个consumer,每个苹果就是一条message。办法三每个盘子中苹果的消费是有序的,而办法二的消费是完全无序的

第二种方法:

第三种方法:

2.Partition的读和写

 我们知道topic下划分了多个partition,消息的生产和消费最终都是发生在partition之上。下图是一个三个partition的topic的读写示意

 我们先看右边的producer,可以看到写的时候,采用round-robin算法,轮询往每个partition写入。

而在消费者端,每个consumer都维护一个offset值,指向的是它所消费到的消息坐标。

我们先看group A的三个consumer,他们分别独立消费不同的三个partition。每个consumer维护了自己的offset。

我们再看group B,可以看到两个group是并行消费整个topic,同一条消息会被不同group消费到。

https://blog.csdn.net/liyiming2017/article/details/82805479

https://zhuanlan.zhihu.com/p/60110741

此处有如下知识点:

1、每个partition都是有序的不可变的。

2、Kafka可以保证partition的消费顺序,但不能保证topic消费顺序。

3、无论消费与否,保留周期默认两天(可配置)。

4、每个consumer维护的唯一元数据是offset,代表消费的位置,一般线性向后移动。

5、consumer也可以重置offset到之前的位置,可以以任何顺序消费,不一定线性后移。
————————————————

原文链接:https://blog.csdn.net/liyiming2017/java/article/details/82805479

猜你喜欢

转载自www.cnblogs.com/hixiaowei/p/12677360.html