单机架构演进

通常我们所做的是普通的分层架构,使用tomcat ,服务器搭建了仅面向PC的Web服务。

问题:

1.服务不稳定  由于每次代码升级都需要重启服务,会造成服务有小段时间的停服情况。

2.服务器性能瓶颈  由于单个服务的并发能力有限(tomcat并发处理上线600tps就比较高),且业务和数据库都部署在一个机器上面,随着业务发展,对服务器性能的要求会越来越高

3.JVM不方便调优  业务逻辑处理、文件IO操作等都集中在一个应用中,对于JAVA应用来说,由于业务应用中部分逻辑是IO密集型的、部分是CPU密集型的、对内存的要求也是各种各样。这种情况下不方便对JVM的参数进行调优,也不方便对线程池数量进行统一设置。

2.改进方案:

增加Nginx反向代理的方式,采用应用集群的方式解决了服务稳定性问题、

通过增加应用服务器数量的方式提高了服务并发处理量

通过将应用服务、数据库、文件存储分离,避免了应用服务和存储相互竞争资源。

3.大量的访问、修改请求提交的数据库的时候,单机数据库较高的瓶颈。

3.由于Nginx通过ip_hash或session-sticky解决会话维持对入口Nginx应用的压力较大、部分业务的查询不能做缓存且查询需要耗费较多的数据库资源、文件存储管理比较混乱,可以进一步对架构调整如下。

过应用服务共享Session到缓存服务上面,解决nginx主主集群部署下的会话维持。

通过读写库分离,解决数据库单点的压力问题。

通过独立的文件存储服务,便于文件的管理。

分布式架构:

参考博文:

https://www.cnblogs.com/linjiqin/p/10074004.html

发布了668 篇原创文章 · 获赞 12 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/xiamaocheng/article/details/105311489