【大话云原生】负载均衡篇-小饭馆客流量变大了

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

一、前言

这是《大话云原生》系列的第二篇,第一篇《煮饺子与docker、kubernetes之间的关系》推出之后受到大家的欢迎,很多朋友联系到我给我加油打气,感谢!我会继续写下去!
书接上回介绍了《煮饺子与docker、kubernetes之间的关系》之后,小娜同学(我老婆)问:为什么不把服务统一开发成一个应用?搞什么分布式?这样感觉很庞大,很复杂啊?为什么要这么搞?所以大话云原生第二篇-负载均衡篇,现在开始!

二、从路边摊说起

周五晚上加了班,下班的时候已经很晚了,打电话给小娜打算去吃烧烤,就去我们经常去的那家“夫妻摊位”烧烤。到了之后才发现“夫妻摊位”升级了,现在变成了“夫妻饭馆”。由于已经比较晚了,店里人并不多,就和老板娘聊了起来。聊聊小饭馆的昨天、今天和明天!

老板娘介绍到:“以前路边摊的时候我俩刚结婚,手里资金有限,就想着开一个路边烧烤摊。我老公负责烤串做菜,我呢、负责服务收银及上菜。挣点小钱!”。老板娘谦虚,等我年纪大了没准也搞个烤串的营生,谁让我爱吃呢!老板娘说之所以能走到今天,主要是因为以下几点:

  • 她的摊位很少会出现长时间的等菜的现象。因为摊位的桌椅板凳的容量通常是有限的,通常也没那么多客人,食品总的需求量的上限也基本是固定的,相对好协调。
  • 沟通顺畅、快速,这头点菜点串吼一嗓子、那边就开始做上了。做好了再吼一嗓子,就上菜了。
  • 短小精悍、容易掉头。夫妻俩之所以选择从路边摊开始,是因为船小好掉头。有可能干一阵发现这个位置客流少,就可以立刻停止经营或者换个地方经营。

哎,别说,夫妻俩这个阶段就有点像一些软件服务创业公司,刚开始创业的时候,一般做的应用服务都是单体应用。笔者也见过一些小型创业公司上来就想搞微服务云原生,我觉得这不太现实。企业的架构都是一步一步衍进的,不要总想着一口吃一个胖子。如果京东淘宝从第一天做应用服务的时候就想做成今天的样子,他们一定活不到今天。就像一个没开过饭店的人第一次创业就要开五星级饭店,等待他的十有八九就是失败!

file

这里我所说的单体应用的特点,其实和路边摊的特点是差不多的:

  • 能够接纳的请求数量时有限的,一是从需求上没那么多用户,二是创业公司资源限制,服务器的内存、CPU配置是有限的。
  • 单体应用的视图层、控制层、持久层全都在一个应用里面,调用方便、响应快速。服务间没有远程调用RPC,响应速度更快一些,具体到某个服务请求的响应结果更快。
  • 开发简单、上手快、三五个人团队好管好用。老板决定不干了,随时可以掉头,基本不太肉疼。

还是要祝贺老板娘啊,生财有道,还会总结经验!

三、开饭馆与负载均衡

前一段时间就已经有人愿意为了吃他们夫妻做的烧烤排队了,这夫妻俩一想,我们这俩人也干不过来啊,怎么办?招人吧、扩大规模吧。

  • 招什么人?当然是厨师啊、端菜收银的妻子自己还能干得过来,主要是丈夫的活挺不住了,对,那就招厨师。
  • 不能让多出来的客人站着吃吧?租一个附近的门市、添置更多的桌椅板凳。

同样的道理,软件应用中的单体应用服务扛不住用户需求了怎么办,加服务器啊,多部署几个服务啊,负载均衡啊。

说说客户端负载均衡与服务端负载均衡

  • 小夫妻两一口气为饭馆配置了三个厨师(含丈夫),这下可够用了。妻子将单号订单给张厨师、双号订单给李厨师,两人都干不过来了,再将订单给丈夫。反正外人不用白不用,自己家人能歇会就歇会。她说给谁就给谁,她有自己的一套算法。这种模式就是“客户端负载均衡”,妻子作为客户端调用“厨师”服务,会记得总共有几个厨师,然后按照自己的算法将用户请求转发给其中一个厨师。我们常见的Spring Cloud每个服务请求其他微服务的时候,都在其内部维护一个微服务列表,然后根据请求目标及算法从微服务中选择一个服务进行远程服务调用。
  • 有一天这俩厨师提出意见:这么干太累了没有闲着时候,要么丈夫多出力,要么涨工资。夫妻俩一合计现在实力也不是很雄厚,还是丈夫多出力吧。那妻子也就没有必要记住“订单的单双号”了,就使用一款app输入顾客订单,该app可以实现订单的均衡分配给厨师。“这种模式就是“服务端负载均衡””。对于软件架构而言该app就是负载均衡器,常用的软件负载均衡器有nginx、haproxy等。还有一些硬件的负载均衡器,性能上要更好一些,当然收费也更“好”。架构如下图所示:

file

利与弊:

  • “利”就是应用的处理能力增加了,能够处理更多的订单。
  • “弊”就是沟通成本增加了,原来吼一嗓子解决的问题,现在需要靠app转发了(负载均衡器)。无论是远程服务调用,还是请求转发转发都是耗时的。

也就是说:饭店(应用服务)现在处理请求吞吐量上的能力增强了,但是在单个请求的处理速度上实际上是下降了。实际上这就是服务拆分的结果,服务拆分就是在 “用时间换空间” 。各位细品!

四、饭后沟通

吃完烤串之后,我将上面的一套理论将给了小娜,她很感兴趣:“软件架构真是脱离不开实际生活啊,到处都是活生生的例子”。我趁势吹起了牛逼:“这才哪到哪,下回带你去个大饭店见见世面,有微服务的大饭店!”。

欢迎关注我的博客,更多精品知识合集

本文转载注明出处(必须带连接,不能只转文字):字母哥博客 - zimug.com

觉得对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创作动力!。另外,笔者最近一段时间输出了如下的精品内容,期待您的关注。

内容概要:本文提出了一种基于非合作博弈理论的居民负荷分层调度模型,并结合双层鲸鱼优化算法(Two-level Whale Optimization Algorithm)进行高效求解,模型与算法均通过Matlab代码实现。研究针对电力系统中居民侧用电负荷的复杂调度问题,引入非合作博弈机制刻画各用户之间的利益竞争关系,实现负荷的分层优化分配;同时设计双层优化架构,上层优化资源配置,下层模拟用户自主决策行为,提升了模型的实用性与合理性。通过智能优化算法求解多层级、非凸非线性的博弈模型,有效提高了调度方案的收敛性与全局寻优能力,适用于现代智能电网中的需求侧管理与能源优化场景。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,从事智能电网、能源优化调度、需求侧管理、博弈论应用等方向的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于居民区电力负荷的分层优化调度系统设计与仿真分析;②为非合作博弈在多主体能源系统建模中的应用提供方法论支持;③利用双层鲸鱼算法解决具有嵌套结构的复杂双层优化问题,提升求解效率与调度方案的可行性。; 阅读建议:建议读者结合提供的Matlab代码深入理解模型构建逻辑与算法实现流程,重点关注博弈模型的效用函数设计、纳什均衡求解思路以及双层优化结构的迭代机制,宜配合实际用电数据开展复现实验以验证模型有效性与鲁棒性。
内容概要:本文围绕基于自适应神经模糊推理系统(ANFIS)智能控制器的可再生能源微电网功率管理系统展开研究,结合Simulink仿真实现,深入探讨了微电网中功率的智能调控与经济机组组合调度问题。通过引入ANFIS控制器,有效应对风能、光伏等可再生能源出力的波动性与不确定性,提升系统运行的稳定性与电能质量。研究内容涵盖微电网多源协调控制策略、功率平衡管理、优化调度模型构建及仿真验证,实现了对分布式电源、储能系统和负荷的协同优化,兼顾经济性与可靠性目标,并通过仿真平台验证了所提方法的有效性与优越性。; 适合人群:具备电力系统、自动化或新能源相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网能量管理、智能控制、能源优化等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高比例可再生能源接入场景下的微电网能量管理系统研发与教学实践;②为实现微电网功率稳定控制与经济高效运行提供先进的智能控制解决方案;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的仿真验证与方案优化。; 阅读建议:建议结合提供的Simulink模型与相关代码进行动手实践,重点关注ANFIS控制器的设计流程、规则库构建与参数调优方法,并通过与传统PID或MPC控制策略的对比实验,深入理解其在动态响应与鲁棒性方面的优势。同时可进一步拓展文中提出的优化调度逻辑,应用于多目标、多约束的复杂实际应用场景中。
内容概要:本文档聚焦于“直流电机双闭环控制Matlab仿真”,系统阐述了基于Matlab/Simulink平台实现直流电机双闭环控制系统(主要包括速度环与电流环)的设计与仿真全过程。通过构建直流电机的数学模型,结合PI控制器进行调控,实现对电机转速和电枢电流的高精度动态控制,验证控制策略的稳定性与响应性能。文档详细介绍了仿真模型的搭建流程、关键参数的整定方法、系统动态波形的分析手段以及仿真结果的有效性验证,体现了经典自动控制理论在实际电机系统中的工程应用,是电机控制与电力电子技术相结合的典型研究案例。; 适合人群:具备自动控制原理、电机与拖动基础、电力电子技术和Matlab/Simulink仿真能力的电气工程、自动化、机电一体化等专业的本科生、研究生及从事电机驱动系统研发的工程技术人员。; 使用场景及目标:①作为高校课程设计或实验教学材料,帮助学生深入理解双闭环调速系统的工作机理与工程实现;②服务于科研项目,为新型电机控制算法(如滑模、模糊PID等)的开发与性能对比提供基础仿真验证平台;③作为工业界产品前期设计的仿真工具,用于评估不同控制策略在动态响应、抗干扰能力和稳态精度方面的可行性。; 阅读建议:建议读者在学习过程中紧密结合自动控制理论知识,亲手在Simulink环境中搭建完整的双闭环仿真模型,通过反复调整PI控制器的比例与积分参数,观察并分析转速、电流的阶跃响应曲线,从而深刻理解反馈控制的本质、系统稳定性条件以及参数整定对动态性能的影响,进而掌握电机控制系统的设计精髓。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值