在互联网中,我们常常讲究着唯快不破,相信不少人都有这样的经历,明明一个非常简单的需求,但却要修改非常多的系统,导致开发效率低下,从而不停的加班 。一个好的程序员,一定要学会设计出好的架构,写出优雅的代码,而好的架构,往往是各个系统低耦合的,消息队列,正是解耦的一个神器 。
消息队列背景我们举一个简单的例子,在我们的系统设计之初,所有的系统都是非常的简单,我们以电商系统为例,一开始我们可能只需要非常简单的一个web页面,然后调用成单系统,紧接着扣减库存,最后存到db即可 。
文章插图
到后面,随着业务的发展,系统变得越来复杂,可能我们每次交易,还要通知搜索系统,推荐系统,广告结算系统,商家后台等等等,我们的系统就会变得非常复杂 。
文章插图
本来一次非常交易操作,我们却要通知非常多个调用方,一旦任何一方调用失败,我们是否需要去重试?同时,有些操作非常的重,需要消耗大量的时间,本来用户都要下单给钱了,因为调用多个系统导致耗时过长用户下单失败,就非常容易造成客户的流失 。
【程序员必学的中间件,消息队列的应用场景与简介】为了解决这个问题,我们引入了消息队列,让消息队列去通知其他系统,而下单仍然是下单操作 。
文章插图
交易系统只要在原来的基础上,把对应的信息写到消息队列里面,再有消息队列去干剩下的事情 。这样,我们就能保持原有的交易流程上的简洁 。而我们今天的主角Kafka正是常用的消息队列!
Kafka的作用
- Kafka最被大家熟知的运用场景,便是消息队列,也称消息中间件,消息中间件的主要优点有解耦、削峰、异步扩展性等等,并且Kafka还能保证消息是顺序消费 。
- 存储系统,因为Kafka会将数据写到磁盘,所以不用担心数据断电丢失,有时候,我们也将Kafka作为存储系统来使用 。同时,Kafka天生的持久化与多机副本机制,让数据存储更加可靠与可用 。
- 流式处理平台,Kafka提供非常多的api,并且式非常可靠的数据来源,可以结合spark等开源框架进行流式计算 。
文章插图
总结今天我们对Kafka的初识就到这里,作为一个最流行的消息队列框架之一,Kafka有非常多值得学习的架构知识,欢迎大家关注我,共同学习,共同进步 。大家的支持是我继续唠嗑的动力 。同名公众号(沙茶敏碎碎念)
推荐阅读
- 茶叶蛋的煮法早餐必备哦
- 房奴必看!房贷切换LPR后利率咋算?每月还款如何浮动?
- 什么是苹果MFi认证?MFi是什么意思?有必要么?看完你就懂了
- 2021年末盘点:安卓党必备!8款神仙小众APP,每一款都五星推荐
- 曲屏手机贴膜好不好 曲屏手机有必要贴膜吗
- 吃牛肉必知的7大禁忌
- 天猫双十二价格保护 双11价格保护
- 家庭影院音响效果为何总调不好 新手必读
- 蚝油打开后必须要放冰箱吗
- 淘宝开店注册流程必须交保证金吗 开淘宝店怎么缴纳保证金