一、单机构建系统二、Nginx负载均衡+服务器集群三、HA高可用+负载均衡+服务器集群四、CDN内容分发网络+Varnish服务器集群五、数据库读写分离六、NOSQL数据库 + 分布式搜索引擎七、NOSQL数据库(HA)+分库分表八、分布式文件系统九、应用服务化拆分 + 消息中间件十、微服务架构从过去的OA、CRM、ERP等单机即可满足要求的系统到现代互联网时代各大公司的分布式、微服务平台,互联网架构正在经历着巨大的变革,技术也在不断的更新迭代,这也意味着众多软件开发者们的压力和挑战正在不断的加大,这种新技术更新的速度甚至让我们望而却步,而我们需要做的恐怕不仅仅是学习那么简单了,更要从宏观的角度根据当前的技术形势及时做出更符合我们发展前景的决定 。
这篇文章胖达会跟大家一起探究互联网架构的演变历程,并对每个历程中的相关技术及应用做出合理的解释,希望各位也能参考架构的这些发展过程,结合自己当前的项目架构有一个适当的定位,同时对自己未来应该学习的东西做出明确的计划和安排 。
一、单机构建系统
文章插图
这个其实不用多说,刚开始接触JAVA的同学应该都非常清楚,做毕设或者平时练手最多的图书馆小项目基本都是这种架构,一个简单的应用,配置一下数据库连接,然后部署到自己电脑的Tomcat服务器上,启动之后兴奋的不得了 。
二、Nginx负载均衡+服务器集群
文章插图
试想一下,如果我们一时兴起做了一个个人博客并且部署到了我们的服务器上,采用的是单机的构建方式,后来因为博客质量高竟然火了,访问量快速增加,单台服务器已经无法满足我们的需求,时不时的就有粉丝抱怨博客没法访问了,是不是很头疼?
稳住,这波不慌,这个时候胖达建议首先想想如何给那台可怜的服务器泄泄火,让服务器的压力降下来,有一个办法就是给它加一个或者多个伙伴一块来分摊下压力,把这么多请求分散到每个伙伴身上,从而提高这种负载的能力 。
但是伙伴是有了,一系列的问题也就来了,胖达整理了一下,统一回答如下:
问题一:这么多伙伴,应该识别什么样的指令来接收用户的请求呢?其实完全不用担心伙伴们识别什么样的指令,只要让它傻傻的站在那等待分配就可以了,因为有一种东西叫做负载均衡器,专门给服务器分配这种请求,如果你不知道F5,那你应该知道Nginx,土豪钱多的公司一般会选择前者这种硬件负载均衡器,但是大多数互联网公司会选择后者,因为能从软件的角度解决的问题为啥用硬件呢,谁不想省钱啊?
了解Nginx,必须要知道它的三种功能:
1.反向代理
了解反向代理,首先要清楚什么是正向代理,相信大家访问国外的学习资源例如某hub(你懂的)的时候都用过FQ软件-VPN,这种通过VPN访问谷歌、Youtube等国外网站的过程中,我们知道我们的访问目标服务器是什么,这其实就是正向网络代理 。
而反向代理则不同,就像我们上图中所看到的多台服务器,如果经过反向代理,那我们其实并不知道实际访问的服务器是哪一台,因为我们的请求被前面架设的Nginx自动分配给了某一台服务器,就比如说我们打10086人工客服,你一定记得“你好先生,我是10011号话务员,很高兴为您服务”这样的话,其实我们在打电话的时候并不知道由哪一个话务员来为我们服务,这些分配过程都是由10086服务台自动进行的,这里的10086服务台其实就是我们系统中的反向代理服务器,也既图中的Nginx 。
2.动静分离
在做web开发的时候大家都清楚,js、html、图片资源、文件资源这些其实都属于静态资源,供用户直接访问,并不需要编译或者解释,是一些放在那里就可以用的东西,而jsp、java文件这些东西其实都需要被tomcat服务器解释一遍才能被机器识别,但是如果把它们都放在一起供用户访问,那每台服务器的压力岂不是很大,这个时候我们就可以做动静的分离,将这些静态的文件放置到Nginx服务器上,后面的tomcat服务器用来放动态的jsp、java文件,这样的话就变向的给服务器降低了压力 。
3.负载均衡
这个其实很明显了,简单来说,通过架设Nginx服务器,经过一定的均衡算法将用户的请求合理分发给后面的服务器,这个过程很好的降低了请求负载,让每一台服务器都能舒舒服服的承载请求,做好自己的工作 。
推荐阅读
- Gateway - 网关应用
- 简单解读双频路由器5G和2.4G区别,是什么让网速慢了?
- 银行卡锁了怎么通过网上解锁
- 驾照档案编号网上怎么查,怎么看
- 淘宝规则官网 淘宝新规则最新消息
- 中国互联|国家网信办说了,对中国互联网充满信心,打工人可以安心了
- 京东打造互联网+“立体扶贫”体系
- 分享几个简单实用的局域网共享设置工具
- 混合云环境下的网络层安全技术
- 内网渗透-net-NTLM hash的攻击