温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,接下来呢,我们来看一下第五张卡夫卡的消费者,那这一张呢,是绝对的重点啊,一定要认真听,首先呢,我们来看第一个问题,卡夫卡的一个消费方式,你说他采用哪种方式进行消费的。双击打开。打开之后啊,正常情况下消息队列呢,有两种消费方式,一种呢采用拉取啊,这是这个消息队列,那消费者呢,可以采用主动的自己来拉我拉走。还有一种方式呢,采用推送的方式,比如说诶,我给你啊进行一个推。那这两种方式。那卡布卡采用的哪种呢?哎,卡布卡采用的是对应的叫拉取的这种方式主动去拉。那他为什么要采用主动去拉取呢?主要的原因在这,比如说呢,这你是卡帕集群。那么下游的消费者有N多个,比如说你看宋宋老师,正常他自己的消费速度是50兆每秒。那宋老师秘书呢,哎,消费速度呢,是二兆每秒,那除了女秘书之外,还有男秘书,那男秘书呢,消费的速度呢,是十兆每秒。
01:07
每一个人的消费速度不一样,如果说你采用下面这个推送的这种方式。那么你是推十兆每秒还是推这个50兆每秒呢?比如说你推十兆每秒是大家都满足了,但生物老师说,哎呀,你这个推的速度太慢了是吧,他接受不了,那反过来如果卡卡奇群推送的是50兆每秒。那他这个,哎,男秘书女秘书是不是都受不了啊啊,因为他们呢,最多能处理的是十兆,他是20兆每秒啊,所以呢,他采用的是根据自身的一个情况,哎,我去按照十兆每秒去拉取数据,我呢是根据20兆每秒拉取数据,那他呢,顺老师呢,就是50兆每秒自己去拉取数据啊。那么下面看一下这个推送啊,推送呢,就是卡不卡没有采用这种方式啊,因为呢,由于博决定消息的发送速率很难适应所有的消费者,刚才已经说了啊,你推送50兆每秒,那么呃,这两位受不了了啊,推送十兆每秒呢,下面这两位啊也受不了了哈。
02:05
那是不是这个主动拉取这种方式就没有什么毛病呢?哎,记住其实他也有对应的这个缺点啊,有不足之处,什么不足之处呢?就是如果说卡夫卡没有数据。那么消费者会陷入死循环,一直是返回空串,你想啊,这里面呢,你是按照自己的速度去从这拉取数据,那万一这里面没有数据就空了。有一段时间这边没有生产者,没有往集群里面写出去,那不就空了吗?那空大这边就一直空转,一直空转,一直死循环。那也会影响一定的这个效率哈,行,那总之呢,还是从整体上来说,哎,主动去拉取数据,这个效果呢要好一些啊,这是曾经的一道面试题啊,这个呢,大家要记住哈。
我来说两句