好,我们先来张图,
本来想画张图,一直没有去做,先用这张图。很经典
ps:这张图其实就是今天的主角。废话不多说,直接说重点。
为什么要贴这样一张图,这张图太牛逼了,
,这里体现的,它亦乎天然的节点扩展能力,决定它无与伦比高效的读写能力,让你觉得原来软件设计是如此的美妙的一件事啊,好了,下面就说说,这伟大的设计。ps:装逼了。。
首先这里有3个broke,可以理解为开了3个kafka服务,不管它是在一台服务器上还是3台服务器上都可以,其实就是kafka集群,开的越多,我现在可以告诉你,读写能力就会越强,那到底是怎么回事呢?
下面就要讲到今天主角-分区,主角也将决定kafka读写能力的主角。就是如图的各partitions,这个东西很重要,kafka的核心设计。如下图来自官网
现在咱们就以发布订阅模式来剖析它,这个模式大家应该都比较熟悉,简单而言就是生产者发布消息,消费者订阅消息进行消费,还不懂的,请自行补习了哈。
好了,partitions其实就是存数据的地方了,就是发布的消息,消费的消息,都会来自于此。再仔细看图,一个topic0中,在每个broke中分别有partition0.partition1.partition2,(最后那个应该是partition2,这里我觉得有点不对,所以说要自己画这张图)
等等,这些多partions,发布的消息,具体要落到那个partitions中呢,还是落到所有的partitions中呢,“所有这个”是之后讲的主从备份主从选举高可用的功能了。所以kafka也有主从机制的哦。如果具体只落到某一个partitions中,那规则是什么呢?其实发布者(客户端)发布消息都会带有一个key,这个key,hash再于所有partitions数取模
谈谈我对kafka的理解
最新推荐文章于 2025-06-24 14:47:23 发布