当前位置:网站首页>大话云原生之负载均衡篇-小饭馆客流量变大了
大话云原生之负载均衡篇-小饭馆客流量变大了
2022-07-02 22:05:00 【InfoQ】
一、前言
二、从路边摊说起
- 她的摊位很少会出现长时间的等菜的现象。因为摊位的桌椅板凳的容量通常是有限的,通常也没那么多客人,食品总的需求量的上限也基本是固定的,相对好协调。
- 沟通顺畅、快速,这头点菜点串吼一嗓子、那边就开始做上了。做好了再吼一嗓子,就上菜了。
- 短小精悍、容易掉头。夫妻俩之所以选择从路边摊开始,是因为船小好掉头。有可能干一阵发现这个位置客流少,就可以立刻停止经营或者换个地方经营。

- 能够接纳的请求数量时有限的,一是从需求上没那么多用户,二是创业公司资源限制,服务器的内存、CPU配置是有限的。
- 单体应用的视图层、控制层、持久层全都在一个应用里面,调用方便、响应快速。服务间没有远程调用RPC,响应速度更快一些,具体到某个服务请求的响应结果更快。
- 开发简单、上手快、三五个人团队好管好用。老板决定不干了,随时可以掉头,基本不太肉疼。
三、开饭馆与负载均衡
- 招什么人?当然是厨师啊、端菜收银的妻子自己还能干得过来,主要是丈夫的活挺不住了,对,那就招厨师。
- 不能让多出来的客人站着吃吧?租一个附近的门市、添置更多的桌椅板凳。
- 小夫妻两一口气为饭馆配置了三个厨师(含丈夫),这下可够用了。妻子将单号订单给张厨师、双号订单给李厨师,两人都干不过来了,再将订单给丈夫。反正外人不用白不用,自己家人能歇会就歇会。她说给谁就给谁,她有自己的一套算法。这种模式就是“客户端负载均衡”,妻子作为客户端调用“厨师”服务,会记得总共有几个厨师,然后按照自己的算法将用户请求转发给其中一个厨师。我们常见的Spring Cloud每个服务请求其他微服务的时候,都在其内部维护一个微服务列表,然后根据请求目标及算法从微服务中选择一个服务进行远程服务调用。
- 有一天这俩厨师提出意见:这么干太累了没有闲着时候,要么丈夫多出力,要么涨工资。夫妻俩一合计现在实力也不是很雄厚,还是丈夫多出力吧。那妻子也就没有必要记住“订单的单双号”了,就使用一款app输入顾客订单,该app可以实现订单的均衡分配给厨师。“这种模式就是“服务端负载均衡””。对于软件架构而言该app就是负载均衡器,常用的软件负载均衡器有nginx、haproxy等。还有一些硬件的负载均衡器,性能上要更好一些,当然收费也更“好”。架构如下图所示:

- “利”就是应用的处理能力增加了,能够处理更多的订单。
- “弊”就是沟通成本增加了,原来吼一嗓子解决的问题,现在需要靠app转发了(负载均衡器)。无论是远程服务调用,还是请求转发转发都是耗时的。
四、饭后沟通
边栏推荐
- Simpleitk use - 4 Strange question
- APP页面分享口令Rails实现
- Market Research - current situation and future development trend of anti-counterfeiting label market
- Servicemesh mainly solves three pain points
- Market Research - current market situation and future development trend of intravenous injection (IV) bottles
- 《ActBERT》百度&悉尼科技大学提出ActBERT,学习全局局部视频文本表示,在五个视频-文本任务中有效!
- JS获取display为none的隐藏元素的宽度和高度的解决方案
- Kubernetes resource object introduction and common commands (4)
- [shutter] shutter opens a third-party application (url|launcher plug-in search and installation | url| launcher plug-in official example | open browser | open a third-party application)
- 100 important knowledge points that SQL must master: using cursors
猜你喜欢

New feature of go1.18: introduce new netip Network Library

An overview of the development of affective computing and understanding research

【外刊】睡眠与减肥

Dynamic memory allocation (malloc calloc realloc free)

scrcpy这款软件解决了和同事分享手机屏幕的问题| 社区征文

sql service 截取字符串

Build your own website (22)

#include errors detected. Please update your includePath.

Evolution of messaging and streaming systems under the native tide of open source cloud

Task and privilege level protection
随机推荐
C语言,实现三子棋小游戏
C language, to achieve three chess games
【AUTOSAR-DCM】-4.3-UDS $22和$2E服务如何读取和写入NVM数据
Notes on key vocabulary of the original English book biography of jobs (IX) [chapter seven]
[micro service sentinel] rewrite Sentinel's interface blockexceptionhandler
Unity3d learning notes 4 - create mesh advanced interface
[shutter] shutter custom fonts (download TTF fonts | pubspec.yaml configure font resources | synchronize resources | globally apply fonts | locally apply fonts)
Promise optimized callback hell
《ActBERT》百度&悉尼科技大学提出ActBERT,学习全局局部视频文本表示,在五个视频-文本任务中有效!
Market Research - current market situation and future development trend of aircraft wireless intercom system
Unity publishes a method of webgl playing sound
An overview of the development of affective computing and understanding research
PHP微信抢红包的算法
数学建模——图与网络模型及方法(一)
[QT] QT multithreading development - four methods to realize multithreading design
Tencent three sides: in the process of writing files, the process crashes, and will the file data be lost?
Market Research - current market situation and future development trend of total nutrition products
Necessary browser plug-ins for network security engineers
New feature of go1.18: introduce new netip Network Library
Market Research - current market situation and future development trend of night vision goggles for pilots