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

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

- “利”就是应用的处理能力增加了,能够处理更多的订单。
- “弊”就是沟通成本增加了,原来吼一嗓子解决的问题,现在需要靠app转发了(负载均衡器)。无论是远程服务调用,还是请求转发转发都是耗时的。
四、饭后沟通
边栏推荐
- APP页面分享口令Rails实现
- Notes on key vocabulary in the English original of the biography of jobs (11) [chapter nine]
- 【微服务|Sentinel】重写sentinel的接口BlockExceptionHandler
- 《Just because》阅读感受
- Attack and defense world PWN question: Echo
- Methods of adding styles to native JS
- [shutter] shutter custom fonts (download TTF fonts | pubspec.yaml configure font resources | synchronize resources | globally apply fonts | locally apply fonts)
- Official announcement! The golden decade of new programmers and developers was officially released
- Socket socket c/s end process
- Market Research - current market situation and future development trend of third-party data platform
猜你喜欢

sql service 截取字符串

Oracle-PL/SQL编程
![NC24325 [USACO 2012 Mar S]Flowerpot](/img/cf/86acbcb524b3af0999ce887c877781.png)
NC24325 [USACO 2012 Mar S]Flowerpot

Basic concepts of image and deep understanding of yuv/rgb

Micro service gateway selection, please accept my knees!

Pointer and string

It's not easy to say I love you | use the minimum web API to upload files (swagger support) # yyds dry inventory #

Leetcode circular linked list (fast and slow pointer) code line by line interpretation

Dynamic memory allocation (malloc calloc realloc free)

#include errors detected. Please update your includePath.
随机推荐
Socket socket c/s end process
【leetcode】1380. Lucky number in matrix
Market Research - current market situation and future development trend of night vision goggles for pilots
Les trois principaux points de douleur traités par servicemesh
【外刊】睡眠与减肥
[autosar-dcm] - 4.3-how UDS $22 and $2e services read and write NVM data
Market Research - current situation and future development trend of environmental friendly fireworks Market
Evolution of messaging and streaming systems under the native tide of open source cloud
关于PHP-数据库的 数据读取,Trying to get property 'num_rows' of non-object?
Necessary browser plug-ins for network security engineers
[leetcode] sword finger offer 11 Rotate the minimum number of the array
Methods of adding styles to native JS
kubernetes资源对象介绍及常用命令(四)
将 EMQX Cloud 数据通过公网桥接到 AWS IoT
php优化foreach中的sql查询
ServiceMesh主要解决的三大痛點
UE4 UI自适应屏幕
New feature of go1.18: trylock, which has been tossed n times
Official announcement! The golden decade of new programmers and developers was officially released
I admire that someone explained such an obscure subject as advanced mathematics so easily