最早web应用开发
如jsp、php等,将表达层、业务逻辑层、数据访问层代码统一写在一起,后面的项目维护有极大困难,代码没层次、可读性差,可能早期一个jsp文件,就会出现好几万行java+html+jq代码。
传统架构(单点应用)
ssh架构(struts2+spring+hibernate)、ssm架构(springmvc+spring+mybatis) 把整个业务模块放在一个项目中开发。
单点应用的有缺点
优势:易于开发、易于测试、易于部署
缺点:扩展性差,在对访问量大,添加功能等就会变得很不灵活,
添加功能可能需要让这个项目下线,进行维护,当项目中一个功能出现问题,可能会引发其他模块也无法正常运行。解决高并发就需要加大硬件扩展(横向扩展)、将整个项目重新部署别的服务器上(纵向扩展)并且必须结合负载均衡去解决。成本极大。
微服务架构
首先先看一副图
终结,就是将功能分割出来分布在不同服务器上,项目之间通信通过协议端口,然后将高访问功能集群部署,负载均衡平摊访问量,从而减轻服务器的负担,这样的好处就是当一个服务器崩塌别的服务器可以接着工作,使系统可以正常进行。当需要扩充功能,只需将这样功能追加到注册中心,协议与端口进行使用。
楼主对着有个人见解,要是有不合适的地方,希望大家指点出来,及时更正。