您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

程序员必学的中间件,消息队列的应用场景与简介

时间:2019-09-10 10:10:33  来源:  作者:

在互联网中,我们常常讲究着唯快不破,相信不少人都有这样的经历,明明一个非常简单的需求,但却要修改非常多的系统,导致开发效率低下,从而不停的加班。一个好的程序员,一定要学会设计出好的架构,写出优雅的代码,而好的架构,往往是各个系统低耦合的,消息队列,正是解耦的一个神器。

消息队列背景

我们举一个简单的例子,在我们的系统设计之初,所有的系统都是非常的简单,我们以电商系统为例,一开始我们可能只需要非常简单的一个web页面,然后调用成单系统,紧接着扣减库存,最后存到db即可。

 

程序员必学的中间件,消息队列的应用场景与简介

 

 

到后面,随着业务的发展,系统变得越来复杂,可能我们每次交易,还要通知搜索系统,推荐系统,广告结算系统,商家后台等等等,我们的系统就会变得非常复杂。

 

程序员必学的中间件,消息队列的应用场景与简介

 

 

本来一次非常交易操作,我们却要通知非常多个调用方,一旦任何一方调用失败,我们是否需要去重试?同时,有些操作非常的重,需要消耗大量的时间,本来用户都要下单给钱了,因为调用多个系统导致耗时过长用户下单失败,就非常容易造成客户的流失。

为了解决这个问题,我们引入了消息队列,让消息队列去通知其他系统,而下单仍然是下单操作。

 

程序员必学的中间件,消息队列的应用场景与简介

 

 

交易系统只要在原来的基础上,把对应的信息写到消息队列里面,再有消息队列去干剩下的事情。这样,我们就能保持原有的交易流程上的简洁。而我们今天的主角Kafka正是常用的消息队列!

Kafka的作用

  • Kafka最被大家熟知的运用场景,便是消息队列,也称消息中间件,消息中间件的主要优点有解耦、削峰、异步扩展性等等,并且Kafka还能保证消息是顺序消费。
  • 存储系统,因为Kafka会将数据写到磁盘,所以不用担心数据断电丢失,有时候,我们也将Kafka作为存储系统来使用。同时,Kafka天生的持久化与多机副本机制,让数据存储更加可靠与可用。
  • 流式处理平台,Kafka提供非常多的api,并且式非常可靠的数据来源,可以结合spark等开源框架进行流式计算。

Kafka的体系架构

Kafka的体系架构也比较简单,一个典型的卡夫卡体系包括若干消息的生产者,若干消息的消费者,若干个Broker以及一个Zookeeper集群,如下图所示,其中,zk集群主要用来进行集群元数据的管理以及控制器的选举等操作。

 

程序员必学的中间件,消息队列的应用场景与简介

 

 

总结

今天我们对Kafka的初识就到这里,作为一个最流行的消息队列框架之一,Kafka有非常多值得学习的架构知识,欢迎大家关注我,共同学习,共同进步。大家的支持是我继续唠嗑的动力。同名公众号(沙茶敏碎碎念)



Tags:中间件   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
中间件是一种装配到应用管道以处理请求和响应的软件。 ASP.NET Core 提供了一组丰富的内置中间件组件,但在某些情况下,你可能需要写入自定义中间件。备注本主题介绍如何编写基...【详细内容】
2021-12-17  Tags: 中间件  点击:(15)  评论:(0)  加入收藏
今天,字节跳动正式宣布开源 CloudWeGo。这是一套以 Go 语言为核心、专注于微服务通信与治理的中间件集合,具有高性能、可扩展、高可靠的特点。项目地址:https://github.com/clo...【详细内容】
2021-09-08  Tags: 中间件  点击:(93)  评论:(0)  加入收藏
一、架构软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础...【详细内容】
2021-08-31  Tags: 中间件  点击:(78)  评论:(0)  加入收藏
最近学习了阿里资深技术专家李运华的架构设计关于读写分离的教程,颇有收获,总结一下。1 读写分离概述 基本架构图: 2 适用场景 读写分离不是银弹,并不是一有性能问题就上读写分...【详细内容】
2021-08-19  Tags: 中间件  点击:(118)  评论:(0)  加入收藏
消息中间件的应用场景 异步解耦 削峰填谷 顺序收发 分布式事务一致性腾讯应用案例: 主流 MQ 框架及对比 说明 Kafka:整个行业应用广泛 RocketMQ:阿里,从 apache 孵化 Pulsar:雅...【详细内容】
2021-01-26  Tags: 中间件  点击:(208)  评论:(0)  加入收藏
今天闲聊下消息中间件的一些关键特性,对于消息中间件基础知识,包括各种开源消息中间件的比较选型文章,网上已经有很多,在这里就不再重复进行描述。因此这篇文章仅仅选择一些消...【详细内容】
2020-11-24  Tags: 中间件  点击:(104)  评论:(0)  加入收藏
作者:拥之则安出处:https://segmentfault.com/a/11900000375454581.非分片字段查询Mycat中的路由结果是通过 分片字段 和 分片方法 来确定的。例如下图中的一个Mycat分库方...【详细内容】
2020-10-22  Tags: 中间件  点击:(119)  评论:(0)  加入收藏
Koa是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数, Koa 帮你丢...【详细内容】
2020-08-17  Tags: 中间件  点击:(84)  评论:(0)  加入收藏
上一次分享了中间件-部署tomcat文章,那么实际一些最基础的tomcat知识有没有去了解呢?这里简单介绍下一些知识点,希望大家喜欢。 知识点1:tomcat的日志文件解压tomcat之后,会有个l...【详细内容】
2020-06-09  Tags: 中间件  点击:(200)  评论:(0)  加入收藏
前言距离上一篇文章发布又过去了两周,这次先填掉上一篇秒杀系统文章结尾处开的坑,介绍一下数据库中间件Canal的使用。「Canal用途很广,并且上手非常简单,小伙伴们在平时完成公...【详细内容】
2020-05-10  Tags: 中间件  点击:(37)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条