笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解

本文详细介绍了Java开发网站架构从单体架构到微服务架构的演变过程,包括单体架构、集群架构、分布式架构、SOA架构和微服务架构的优缺点及关键技术。在演进过程中,逐步引入了应用和数据分离、缓存、读写分离、反向代理、CDN加速、分布式文件系统、NoSQL和搜索引擎等技术,以适应不断增长的业务需求和提升系统性能。
摘要由CSDN通过智能技术生成

Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构、集群架构、分布式架构、SOA架构和微服务架构。下面玄武老师来给大家详细介绍下这5种架构模式的发展背景、各自优缺点以及涉及到的一些技术,并且教会你如何区分它们。

第1阶段:单体架构

单体架构介绍

单体架构就是将所有的应用、数据库、文件都部署在一台机器上,俗称All-In-One。简单来讲其实就是我们熟知的SSH架构或SSM架构,把所有的业务模块都放在一个应用中开发,这里面又衍生出三层架构,即表示层、业务逻辑层和数据库访问层,虽然在软件设计中划分了经典的三层模型,但是对业务场景没有划分,一个典型的单体应用就是将所有的业务场景的表示层、业务逻辑层和数据访问层放在一个工程项目中,最终经过编译、打包,部署在一台服务器上。单体架构图如下:

单体架构优点

1)部署简单: 由于是完整的结构体,可以直接部署在一个服务器上即可。
2)技术单一: 项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发。
3)用人成本低: 单个程序员可以完成业务接口到数据库的整个流程。

单体架构缺点

1)系统启动慢: 一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长;
2)系统错误隔离性差、可用性差:任何一个模块的错误均可能造成整个系统的宕机;
3)可伸缩性差:系统的扩容只能只对这个应用进行扩容,不能做到对某个功能点进行扩容;
4)线上问题修复周期长:任何一个线上问题修复需要对整个应用系统进行全面升级。

单体架构向集群架构过渡(1):应用和数据分离

随着公司业务的不断发展,由于单台服务器性能有限,逐渐无法满足业务需求,大量用户高并发的访问导致系统性能越来越差,数据存储空间开始出现不足,这时我们需要将应用和数据分离,分离后开始使用三台服务器:应用服务器、文件服务器、数据库服务器。如图:

应用和数据分离后,不同种类的服务器承担着不同的服务角色,网站的并发处理能力和数据存储空间都得到了很大的改善,支持网站业务进一步发展,但是随着用户量进一步增多,数据库压力依然越来越大,访问延迟不可避免,进而影响整个网站的性能,糟糕的用户体验使得系统需要进一步优化。

单体架构向集群架构过渡(2):缓存的使用

随着QPS持续提高,为了降低接口访问时间、提高服务性能和并发,我们注意到,网站访问有个著名的二八定律,即80%的业务集中访问在20%的数据上(热数据),其实部分数据有很多不需要每次都从数据库获取,比如经常被查询但对准确性要求并不是特别高的数据。如果我们将这一小部分热数据缓存在内存中,能够很好的减少数据库的访问压力,并大幅提升网站响应速度,因此网站就开始加入了缓存应用,常用的缓存组件有redis,ehcache等。

注意:能使用缓存的数据得满足如下要求:

1)对于数据实时性要求不高
对于一些经常访问但是很少改变的数据,查询明显多于修改,适用缓存就很有必要,比如一些网站配置项。
2)对于性能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值