假设我们的Broker上面有特别多的主题,那么这个时候如果由于IO速度不够,可能会导致生产者无法及时的将消息发送到Broker中,消费者无法及时的从Broker中拉取消息。
所以就有了分区这个概念,相当于我们可以把一个主题分成很多份。但是,当生产者往某一个主题中发送消息的时候,并不会把这个消息发送给这个主题的所有分区,而是会发送到这个主题的某一个分区下。
也就是说,这里的分区,是扩展的概念,而不是复制的概念。
此外,这些分区可以部署在不同的机器上,性能也就提升了好几倍。
2.5 Replica“高可用”这个概念,在互联网中也特别的重要。
而通常来讲,可用性通常都是通过冗余来实现的。
上面我们提到了分区这个概念,利用分区,把一个主题分成多个部分进行扩展。
但是如果某一个分区挂了,是不是就这个主题的很多信息就丢失了呢?
因此有了Replica这个概念。简单的来说,就是把每一个分区,都复制几份。
通常来讲,我们理解的复制,都是有一个leader,若干个follower,且一般leader负责写,follower负责读。不过在Kafka中跟MySQL这些不太一样,在Kafka中follower就仅仅只是作备份使用,所有的读写还是发生在了leader身上。
写在最后首先,谢谢你能看到这里。
在《Kafka入门》系列的文章中,我的打算是跟MySQL系列的文章一样,尽可能的把复杂的概念讲得更加简单易懂一些。另外,也会稍微的深入一点点原理,尽可能的在会用的情况下,知道他是怎么实现的,以及为什么要这么设计。
在这期间我如果有哪些理解的不够到位,或者解释的不对,欢迎留言指正!
再次感谢你能看到这里!
PS:如果有其他的问题,也可以在公众号找到我,欢迎来找我玩~