美文网首页
Kafka 需要更新

Kafka 需要更新

作者: 海边的贝壳林 | 来源:发表于2017-09-11 23:19 被阅读0次

先看下kafka的整体

黑色箭头的通信采用的是TCP协议.

kafka

Topic

kafka允许我们把一类消息归类在一起, 这就是Topic, kafka还对每个Topic进行了分区. 如下就是三个分区. 012345678这些叫做offset, 是partition(分区)用来记录每个offset所对应的消息的. 如图, 在分区中, 消息是有序的.

topic剖析

生产者

生产者发布消息

  1. 发给Topic, 在Topic内部采用复杂均衡的模式将消息分发给各个分区.
  2. 发给Topic, 并且指定发送给哪个分区.

消费者

消费者所需要维护的数据, 只有其所消费的那个分区的offset. 按offset读取数据的时候, 一般来说都是按照顺序读取的, 但是消费者也可以指定offset的值, 即使这个数据已经被读取过了, 只要这个分区消息还在有效期中, 都可以被读到.

队列模式和发布/订阅模式

  1. 队列模式: 一组消费者消费一个Topic的消息, 每个消息只会被一个消费者给消费掉.
  2. 发布/订阅模式: 同一条消息会同时被多消费者消费. 每组内可能会有一个或多个消费者, 在组内其实可以看做"队列模式", 进入组内的一条只会被一个消费者消费. 这里需要注意的是, 订阅的是组而不是个体消费者.
集群和消费者

有序性

  • 以分区顺序: 上面有说道, 每个分区内部的消息是有顺序的. 如果只有一个/组消费这个分区, 那么这个/组的消费者消费的消息就是顺序的. 这种相对下面的方式提高了并发量的上限, 但是不能保证Topic是顺序的.
  • 以Topic顺序: 那么就让这个Topic只有一个分区, 并且只有一个(组)消费者去消费他. 但是随之而来的问题就是并发性能上限不高的问题.

集群

zookeeper

leader和follower

pull模式?

重复消费问题

相关文章

网友评论

      本文标题:Kafka 需要更新

      本文链接:https://www.haomeiwen.com/subject/bokqsxtx.html