RSS

从0到1,JavaWeb网站架构搭建的技术演进


     
      工作也有几多年了,无论是身边遇到的还是耳间听闻的,多多少少也积攒了自己的一些经验和思考,当然,我并没有接触太多高大上的分布式架构实践,所以总结的经验相对比较零碎,欢迎大家随时补充。
     俗话说得好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的,对于开发人员来说,一个好的架构并不是一蹴而就的。
      初始搭建
     最开始,就是各种框架一搭,然后扔到 Tomcat 容器中跑,这时候我们的文件、数据库、应用都在一个服务器上。
      服务分离
     随着系统的上线,用户量也会逐步上升,很快一台服务器已经满足不了系统的负载,这时我们就要在服务器还没有超载时,提前做好准备。
     由于我们是单体架构,优化架构在短时间内是不现实的,增加机器是一个不错的选择。这时,我们可能要把应用和数据库服务单独部署,如果有条件也可以把文件服务器单独部署。
     反向代理
     为了提升服务处理能力,我们在 Tomcat 容器前加一个代理服务器,一般使用 Nginx,当然你如果更熟悉 Apache 也未尝不可。
     用户的请求发送给反向代理,然后反向代理把请求转发到后端的服务器。
     从严格意义上说,Nginx 是属于 Web 服务器,一般处理静态 HTML、CSS、JS 请求;而 Tomcat 属于 Web 容器,专门处理 JSP 请求,当然 Tomcat 也是支持 Html 的,只是效果没 Nginx 好而已。
     反向代理的优势,如下所示:
     隐藏真实后端服务。
     负载均衡集群。
     高可用集群。
     缓存静态内容实现动静分离。
     安全限流。
     静态文件压缩。
     解决多个服务跨域问题。
     合并静态请求。
     防火墙。
     SSL 以及 http2。
     动静分离
&nbs