当前位置: 首页>后端>正文

java架构和技术的演变

1.all in one(单体应用架构)

前端:jsp或者thymeleaf等模板引擎或者html
后端:struts+spring+hibernate或者springmvc+spring+mybatis
将前端和后端的代码全部开发集合在一个项目中,然后打成war包部署到tomcat中.

优点:
开发和部署简单;
缺点:
1.tomcat服务器的并发请求处理量为200~300,处理不了高并发的请求
2.前后端代码写在了一起,耦合高,不易于维护,代码可扩展性差

2.前后端分离架构

前端:Vue+element-ui+axios
后端:springboot+mybatis(spring JPA)+redis+...

优点:由于前端项目不依赖于jvm环境,所以可以部署在nginx服务器上,nginx可以处理万级并发。缓解了后端tomcat服务器近百分之80的请求,tomcat服务器只需要关注后端需要处理数据的近百分之20的请求。

缺点: 只是缓解了高并发,并没有彻底解决!

3.分布式架构

前端:Vue+ElementUI+Axios

后端:SpringBoot+dubbo+zookeeper+Mybatis(或者JPA)+Redis(可选)+Elasticsearch(可选)

分布式架构要解决的四个点:
1.用户发起的服务这么多,路由网关(zuul)
2.如何对服务进行统一注册和发现 服务注册中心(nacos,eruak,zookeeper等)
3.服务之间怎么通信 不同服务器上服务间的通信(RPC或者Http)
4.服务可能宕机或者挂掉,用熔断机制或者降级(Hysteria)

优点:采用集群部署+负载均衡的方式,通过添加服务器节点彻底解决了高并发问题

缺点: 没有解决高可用性问题,服务器后端项目有多个模块功能,一个模块功能故障会导致整个项目不可用。随着后续功能的不断增加,这种几率会更大.

4.微服务架构

解决方案三种:
1.dubbo+zoopker
2.spring cloud netflix(2018停更)
3.spring cloud alibaba
前端:Vue+ElementUI+Axios

后端:SpringBoot+springcloud+Mybatis(或者JPA)+Redis(可选)+Elasticsearch(可选)
将后端项目拆分成多个单独的模块项目,部署到不同的服务器中,通过提供模块服务端口+服务注册,完成微服务间的通信,很高的完成了高可用性

通过算法+数据结构的优化完成高性能


https://www.xamrdz.com/backend/3xp1940404.html

相关文章: