上篇 Nginx 原理探究这篇文章主要探索了 ng 的几个核心点,分别是:1、反向代理 2、动静分离 3、负载均衡 4、跨域配置。今天主要探索下 ng 上的负载均衡,与其说是探索,不如说是进行一次实验(模拟服务宕机)。
首先,参考了《nginx 和阿里云的 SLB 的区别》和掘金上的一张负载架构图。
简单分析 ng 上的 SLB(负载均衡) 和阿里云 SLB 的区别
1、"Nginx 是一个有负载均衡 web 环境,阿里云 SLB 是一个单独的负载均衡系统"
2、如图分析,阿里云 SLB 更多的应用于服务器间的负载均衡,然后 ng 多应用于单一服务器间的相同应用的负载均衡(当然人家也能做服务器负载)。本质没有区别,都是做负载均衡的,但是阿里 SLB 偏应用于系统端,ng 偏应用于服务端。可以参考"[阿里云负载均衡 SLB 是什么,如何使用](https://www.vpsss.net/3474.html)"
补一下 SLB 这个概念,百度百科:"服务器负载均衡(Server Load Balancing),可以看作 HSRP(热备份路由器协议)的扩展,实现多个服务器之间的负载均衡"。
阿里云 SLB 的实验是做不了了,我只有一台服务器,模拟一下 ng 的 SLB 吧。首先我先随便写两个 Web 项目(内容一样)先挂在服务器上。(写的是真的简单。。。)两个相同的项目,访问请求放回"hello NgSLB",分别用 7070、6060 端口启动。(用这个 makedown 上传图片不老好传的,6060 那个和 7070 图一样)
启动一下项目,监听端口。
浏览器都可以正常访问到了,然后在 ng 上配置一下反向代理和负载均衡。
一通转转转然后可以正常访问到接口。其实这里有个不直观的地应该是把两个项目输出值稍作修改的,不过模拟的是企业级接口,原理应该没问题。
然后我把 6060 端口项目关了,默认他宕了。
服务还在,那么这时 ng 就只能去轮询 7070 的项目了
现在把两个端口都停了,就都访问不到了。至此,ng 的负载均衡模拟一个服务宕掉后另一个能轮询到另一个正常访问的实验就成功了。
其实 ng 负载配置项还有很多别的指令这次都没有用到,比如 weight(权重)、down(暂时不参与负载)、backup(备机?)等等,以后再做研究吧。
ng 探索基本也就到这了,下午去帮同事看看 PUBLICCMS 这个开源系统的代码逻辑(他偏偏用 ssh,我大学学 ssm,现在用 jdbc、jpa。。。)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于