任务4:04_Kafka入门_消费模式

消息队列的两种模式:

点对点模式:一对一,消息只能给一个人,比较单一。
在这里插入图片描述
明显感觉到点对点的模式缺点:就是不可复用,加入这个消息需要给多个人处理,就会很麻烦,flume可以给多个,但是需要多个channel和多个sink
点对点模式如果要复用,就必须发给多个消息队列,然后消费者再去接收。浪费资源。

发布/订阅模式(kafka):
一对多。
它只是一个消息队列,不是文件存储系统,所以保存是有时间限制的,不像hdfs,它有时限要求。
在这里插入图片描述
类似于,公众号主动推送文章,大家都能收到消息。
点对点模式:是消费者主动去拉取数据。
发布/订阅模式:是发布者主动推给我的数据。这种方式的坏处是什么?
消息队列的生产速度是由生产者决定的。
生产者一直产生消息给到MQ,因为MQ是一个存储消息的东西(容器),一直灌输给MQ
然后MQ推数据给消费者。问:这个推的速度是由谁决定的呢?这个肯定由当前这个队列来决定的。这个时候就有问题了:下游的消费者的处理能力不一定,
在这里插入图片描述
有的消费者10MB/s,有的100MB/s,但是MQ往外面推送数据是50MB/s的话,有些消费者会崩,但是有些会闲置,造成资源浪费。

所以,发布/订阅模式又分为两种:
1、消费者主动从MQ中拉取数据
2、类似订阅在公众号的形式,由up主主动推送数据给那些订阅了自己文章的人。

这里强调一下:kafka是发布/订阅模式中的消费者主动拉取的方式。

kafka用的广泛这个也是个原因。
发布订阅的好处相对点对点最直观的好处就是,消息可以直接发给多个消费者使用。
又是基于消费者主动拉取数据的方式,所以还有一个好处就是消费者消费的数据由自己决定。

但是消费者主动拉取数据的缺点就是:费性能
在这里插入图片描述
消费者想要主动获取数据,就要不断的向MQ中去问,当MQ长时间没有新消息的时候,这个时候消费者还必须去隔一段时间问他是否由新消息。这就造成了浪费资源,消耗性能。

总结:
kafka是发布订阅模式里面的:消费者主动从MQ拉取数据的模式。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值