Kafka消费模式详解

Kafka 专栏收录该内容
13 篇文章 0 订阅

美图欣赏:
​​​​​​在这里插入图片描述

一.Kafka是什么

流式计算中,Kafka一般用来缓存数据,spark通过消费Kafka的数据进行计算。

1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。

2)Kafka最初是由LinkedIn公司开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。

3)Kafka是一个分布式消息队列。Kafka对消息保存时根据Topic进行归类发送消息者称为Producer消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,一台kafka服务器就是一个broker。每个实例(server)成为broker。

4)无论是kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性

二.Kafka消息队列内部实现原理

(1)点对点模式(类似接受文件,一对一,消费者主动拉取数据,消息收到后消息清除

点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接收者接收处理,即使有多个消息监听者也是如此。

在这里插入图片描述

(2)发布/订阅模式(类似公众号,一对多,数据生产后,推送给所有订阅者)

在这里插入图片描述

注意:kafka里面的数据可以保留一段时间(配置文件可以设置),供别的消费者消费。kafka不会像hdfs一样,会永久存储数据

缺陷:

1.通常情况下,producer(生产者)消费队列是全部推送的如果说,你不想要的话,还是统一推送给你。除非你不订阅他了,就不在推送了。

2.生产速度是生产者决定的,
推送的速率是由消息队列当前决定的
如果说消息队列推送的速率是100M/S,
那么consumerA的处理速率可能是50M/S, 那就崩了
consumerB的接收速率可能是200M/S,那就造成资源浪费

(3)发布/订阅模式(一对多,订阅者 拉取数据模式)

优点:就是订阅者可以根据自己的消费速率,去进行消费

缺点:订阅者要去拉取时数据,都得询问。有可能去询问时,没有消息,轮询就会可能产生资源浪费

            ————保持饥饿,保持学习
                  Jackson_MVP                      
  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值