应用系统的架构
分布式架构是一种将应用程序分解为多个独立的模块,并将它们部署在多台机器上进行协同工作的架构。在分布式架构中,不同的模块之间通过网络进行通信。
分布式架构提高了应用程序的可用性、可扩展性和资源的弹性分配。因为应用程序分布在多台机器上,避免了单点故障的问题,实现了系统的高可用性。此外,分布式架构可以更好地利用分布式计算的优势,能根据应用程序的需要,动态地调整计算资源的分配。
“新闻内容管理系统v1.0”采用分布式架构,整个系统分为网站前台与管理后台两大功能模块,由前置的Nginx进行反向代理,将用户的请求转发到不同的功能模块;Nginx除了做反向代理服务器外,也是手机App的前端服务器,为手机等移动设备提供交互界面。

1、Application1:应用服务器,运行新闻网站,它既是web前端,供用户通过浏览器进行新闻的浏览;也是手机App的后端,为手机等移动设备App提供数据。
2、Application2:应用服务器,运行管理后台,管理后台是供作者或编辑进行新闻创作、内容审核的后台管理系统。
3、Apache:静态资源服务器,发布应用系统的静态资源,处理客户端的静态资源请求,为用户提供CSS样式表、图片、JavaScript代码等静态资源文件。
4、Nginx:既是手机App的前端服务器,为手机等移动设备提供交互界面;也是反向代理服务器,将用户的请求转发到新闻网站或管理后台。
5、MySQL:数据库服务器,存放应用系统的所有数据,用户通过应用服务器上的应用程序实现对数据的增删改查等操作。
系统的运行原理
1、web前端的请求处理。
- 客户端Client的请求通过http协议发送给Nginx反向代理服务器。
- Nginx根据请求路径将请求转发到新闻网站或管理后台。
- 新闻网站或管理后台接收到用户请求后按要求对数据进行处理,处理过程中通常会有一次到多次的数据库数据读写操作。
- 数据处理完毕后,应用程序将执行结果以html页面等形式返回给客户端。
- 客户端接收到返回结果后,会从中解析出CSS样式表、JS代码、图片等静态资源的地址。
- 客户端通过静态资源地址再次向Apache静态资源服务器发送请求,获取静态资源文件,直到所有的静态资源文件获取完毕。
- 客户端将所有的静态资源文件整合在应用程序返回的html页面等结果中,完整展示本次请求的结果。
2、移动App的请求处理。
- 客户端Client的请求通过http协议发送给Nginx前端应用服务器。
- Nginx前端应用服务器将客户端请求的页面及相关的Javascript代码返回给客户端。
- 客户端接收到返回的页面后,会从中解析出CSS样式表、JS代码、图片等静态资源的地址。
- 客户端通过静态资源地址再次向Apache静态资源服务器发送请求,获取静态资源文件,直到所有的静态资源文件获取完毕。
- 请求静态资源的同时,客户端会运行前端程序中的Javascript代码,通过Nginx反向代理服务器向应用服务器Application1上的后端程序请求数据。
- 后端程序接收到用户请求后会按要求对数据进行处理,处理过程中通常会有一次到多次的数据库数据读写操作,数据处理完毕后结果会通过反向代理服务器返回给客户端。
- 客户端将所有的静态资源文件与后端程序返回的数据整合到最终的页面中,完整展示本次请求的结果。