如何从一个简单的网站架构演进发展成大型网站

2023-11-21    分类: 网站建设

前言

写这篇文章的目的是为了帮助自己思考和澄清,以及如何从一个简单的网站架构演进到一个大型的网站架构,主要集中在技术方面

简单的网站

由于没做过php,所以就以jsp为例,jsp为网站前端,以电子商务网站为例,描述一个简单的网站结构

前端jsp+css+js

后端java ssh

网络容器

数据库

开发人员,一名美工,一名前端,一名 Java

部署计划是:

一台服务器,部署和

架构图如下:

应用和数据库的分布式部署

然后网站运行了一段时间,开始盈利了,用户数量也增加了。这时候数据库的数据量还不是很大。

但是,越来越多的用户访问会占用大量的服务器内存和cpu。数据库和应用程序应该分开部署。架构图如下

这样网站就可以运行一段时间了

解耦开发

接下来我们来看看开发问题,但是开发和运维往往是分不开的。由于网站业务的快速发展,我们必须给它添加新的功能,否则将无法发挥,功能也会越来越多的开发者变得越来越相互依赖。以前的开发模式是java程序员从jsp写到dao,全都负责,所以现在有5个java一起开发,每个负责不同的功能,比如用户模块、商品模块、订单模块、交易模块等。 ,那么问题来了

1 Java程序员经常对css做一些调整,写了很多工作,我们使用的是

2 不一定要等到所有模块都开发完成后再上线。在很多情况下,只需要修改一个模块就可以上线。那么代码写在一个项目中,版本控制就变得很困难了。而且,每次修改一个模块的功能,都可能影响到另一个模块的功能,导致项目变得很不稳定。这种情况对于运行中的项目来说是致命的,无限加班也无济于事。痛苦。

解决方案 1(模块化)

这是我多年前想到的解决方案。这么多功能不能合二为一。我指的是一个 java web 项目。至少在开发过程中必须模块化,分离不同的功能。 通过接口调用,如用户模块、应用模块、商品模块、订单模块、交易模块等。不同的人负责开发,那么模块之间如何通信呢?我当时的计划是,每个后端模块都是一个jar包项目。当它们被释放时php大型网站技术架构,它们被标记为一个 jar 包,供其他模块调用。该项目的构建使其从开发到部署更加自动化。基本实现模块化开发,项目发布更加稳定。

模块化的缺点

这个想法就是从那里来的,他们也模块化了不同的功能,但是这种形式有很多缺点:

1 随着时间的推移,每个模块都在不断更新,版本也在不断升级。如果模块 A 依赖于模块 b,则 C

可以理解为A为web前置模块,b为用户模块,C为订单模块

如下图:

如果 b 或 C 发生变化,则 A 有 2 个选择:

1 如果 b 和 C 没有更新,它们仍然可以使用。结果将是不支持最新的 b 和 c 函数。

2 如果选择更新,A需要重新添加新的b或C jar包并进行调试和测试工作,

从接口依赖的角度来看

因为b和C需要查数据库,所以b和C的jar包暴露给A的api太多,没办法很好的控制。对于A项目的开发者来说,接口不清晰,几乎所有的方法都可以调用,使得b和C的变化对上层A产生不可控的影响。

从系统性能来看

由于b和C都需要检查数据库,在A中以jar的形式,占用了A项目中所有服务器的内存、cpu等资源,无法分布式部署。

方案二:模块化分布式部署

那么应该用什么方案,最好是分布式部署,通过网络通信调用A和b,C

由此带来的好处

1 A、b、C实现分布式部署

2 b、C提供清晰的接口供A调用,只要接口不变,b和C修改内部业务逻辑,A不需要重新构建和部署,实现大解耦,即, 修改部分系统功能php大型网站技术架构,其他模块不受影响或受影响较小,影响范围可控。

下一篇大型网站系统架构演进(二)分布式模块间的通信

目录大型网站系统架构演进

网页名称:如何从一个简单的网站架构演进发展成大型网站
网站路径:/news39/295839.html

成都网站建设公司_创新互联,为您提供小程序开发网站改版手机网站建设品牌网站设计网站排名用户体验

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计