kafka概述、介绍——Kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据以及物联网设备的采样信息。——百度百科

Apache Kafka是Apache软件基金会的开源的流处理平台,该平台提供了消息的订阅与发布的消息队列,一般用于系统间解耦异步通信削峰填谷等作用。同时kafka又提供了kafka streaming插件包实现了实时在线流处理。相比较一些专业的流处理框架不同,kafka streaming计算是运行在应用端,具有简单、入门要求低、部署方便等特点。

Kafka的两个特性

在我们传统的系统设计中,模块间调用大多采用同步方案,比如用户注册过程需要注册模块和短信模块协同完成,则总耗时60ms。
在这里插入图片描述
这种方案有几个特点:

  • 同步交互
    调用过程简单,请求响应模式。

  • 资源浪费,并发不高
    在响应之前,应用资源一直处于被占用的状态,比如CPU、内存、网络端口等。

  • 系统耦合度高
    模块与模块之间强耦合的情况下,假设由于某种原因其中一个业务不可用则导致整个业务不可用。

为解决上面的问题,我们引入Kafka来解决问题。

消息队列Message Queue

在这里插入图片描述

  • 异步交互
    把比较耗时的操作转成异步,提升并发能力,减少资源占用时间。

  • 系统间解耦
    业务模块的异常不会影响到其他主业务模块。

  • 业务事件驱动
    业务通过事件驱动方式来达到最终一致状态。

kafka Streaming 流处理

在这里插入图片描述
我们需要对数据现场的数据进行计算,现场数据的产生往往是在某个时刻爆发。引入消息队列后:

  • 削峰填谷
    消息队列主要就是缓冲的作用,再通过消息队列缓慢的输送到传统数据库。

消息队列的消费方式

  • 至多一次:消息生产者将数据写入消息系统,然后由消费者负责去拉取消息服务器中的消息,一旦消息被确认消费之后,由消息服务器主动删除队列中的数据,这种消费方式一般只允许被一个消费者消费,并且消息队列中的数据不允许被重复消费。
    在这里插入图片描述

  • 没有限制:同上述消费形式不同,生产者发布完整数据以后,该消息可以被多个消费者同时消费,并且同一个消费者可以多次消费消息服务器中的同一条记录,主要是因为消息服务器一般可以长时间存储海量消息。这种方式更像是广播订阅。所有的消费者只需要知道上一次的消息位置即可。
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

名栩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值