Kafka 漫谈 (一)-----什么是消息队列?

分享 一个潜水的人 ⋅ 于 2020-06-07 22:10:11 ⋅ 最后回复由 一个潜水的人 2020-06-07 22:42:38 ⋅ 2296 阅读

PS:本系列是一个不定期分享的技术贴,主要分享一些最近阅读的技术资料及书籍和个人理解,大家一起交流,共同进步~(预计每周发一贴~)。emmmm 不定期更新(主要是看工作及健身之后是否有时间看资料~ ) 以下纯手码,结合自己感悟,如果大佬有不同的技术见解,欢迎进行一波友好而又亲切的思想碰撞!可以diss,可以吐槽,但是不可以进行人格侮辱~
Kafka介绍:
1.什么是消息队列?
谈到什么是kafka的时候,首先需要跟各位观众大佬们介绍一些基本的背景知识(如果有看过的话,可以跳过),首先kafka是一个消息队列(Message Queue),可能有些观众大佬们会比较好奇?这个东西为什么要存在,存在的意义是什么?咳咳,别急,慢慢来~
最最早期互联网技术架构模式及现在传统软件行业(小部分)采用的是最最经典的MVC架构,M:module 模型,View:视图展现层.C:controller控制器层。请求流程比较简单主要如图:
file
这样的架构乍一看是没有任何问题的,但是其实存在比较大的问题。
1.并发、请求高峰限制:当用户数请求过多或者并发量请求过大的时候,对于Controller层,其实压力不会有想象中的那么大,但是来一个用户就查询一次数据库,来一次查一次,数据库会因为并发问题导致数据库响应过慢,甚至崩塌。这样对外就无法提供服务。
2.耦合度太高:在技术架构上,主要目的就是减轻或者尽可能降低程序之间的耦合度。举一个现实生活中的例子来看,快递员送快递:快递员什么时候完成这一单或者是否能顺利完成,十分依赖于小明的相应速度。如果小明还没起床,听见敲门声再穿衣服开门,可能消耗很多时间。如果小明没在家呢?那就要配送失败了,如何判断配送失败呢?快递员需要判断等多久开门(超时时间),打电话小明判断是否在家(健康检查),最终郁闷的离开,下次再来一次(重试)。快递员直接与小明交互,对小明的状态强依赖,产生了耦合现象。
3.调用第三方服务限制:当某些服务处理速度过慢的时候,如果高峰流量同时打入的话,会造成服务不可用现象,比方说:快递员短信通知客户拿去快递,假设快递员手速足够快,一秒钟能够同时给1000个人发送短信(当然是不可能的啦),但是运行商只能每秒钟给200个用户发送短信,那剩下800个人就收不到短信提示了。这样是不可以的。所以消息队列就在这种情况下诞生了!

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-一个潜水的人,http://hainiubl.com/topics/75112
点赞
成为第一个点赞的人吧 :bowtie:
回复数量: 2
  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2020-06-07 22:36:46

    继续加油,没有打赏码啊,那这次我省了

  • 一个潜水的人
    2020-06-07 22:42:38

    @青牛 太过分了 = =|| 老大~ :sob:

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter