首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >系统三层B/S架构详解与部署结构

系统三层B/S架构详解与部署结构

原创
作者头像
贺公子之数据科学与艺术
发布2026-08-04 08:35:11
发布2026-08-04 08:35:11
1100
举报
文章被收录于专栏:架构设计架构设计架构之路

系统架构概述

本文档详细描述了系统采用的经典三层B/S(Browser/Server)架构及其具体部署结构。该架构将应用逻辑分为三个主要层次:表示层、业务逻辑层和数据访问层,实现了关注点分离,提高了系统的可维护性和可扩展性。

架构图与部署结构

以下是系统的完整架构图,展示了从客户端到数据库服务器的完整数据流:

代码语言:mermaid
复制
flowchart TD

    subgraph A["客户端(浏览器)"]

        A1["Chrome 90+"]

        A2["Edge 90+"]

        A3["Firefox 88+"]

    end



    subgraph B["Web服务器"]

        B1["Nginx / Vite Preview"]

        B2["静态资源服务"]

        B3["API反向代理"]

    end



    subgraph C["应用服务器"]

        C1["Controller层"]

        C2["Service层"]

        C3["Mapper层(MyBatis-Plus)"]

    end



    subgraph D["数据库服务器"]

        D1["MySQL 8.0"]

        D2["数据库: bi\_fat2026"]

    end



    A -- "HTTPS" --> B

    B -- "HTTP (JSON)" --> C

    C -- "JDBC" --> D

各层详细说明

1. 客户端层(表示层)

**作用**:用户交互界面,负责展示数据和接收用户输入。

**技术栈**:

  • **浏览器**:Chrome 90+、Edge 90+、Firefox 88+
  • **通信协议**:HTTPS(安全传输层协议)

**特点**:

  • 纯前端渲染,不包含业务逻辑
  • 通过HTTPS与Web服务器安全通信
  • 支持现代浏览器,确保良好的用户体验

2. Web服务器层(中间层)

**作用**:作为前端和后端应用服务器之间的桥梁。

**技术栈**:

  • **服务器软件**:Nginx 或 Vite Preview
  • **主要功能**:
  • 静态资源服务(HTML、CSS、JavaScript、图片等)
  • API反向代理(将前端请求转发到后端应用服务器)

**通信方式**:

  • 接收客户端的HTTPS请求
  • 向后端应用服务器发送HTTP(JSON格式)请求

3. 应用服务器层(业务逻辑层)

**作用**:处理核心业务逻辑,协调数据访问和业务规则。

**技术栈**:

  • **框架**:Spring Boot 2.x
  • **端口**:9020
  • **架构分层**:
  1. **Controller层**:接收HTTP请求,进行参数验证,调用Service层
  2. **Service层**:实现核心业务逻辑,处理业务规则
  3. **Mapper层**:基于MyBatis-Plus,负责数据库操作

**通信方式**:

  • 通过HTTP(JSON)与Web服务器通信
  • 通过JDBC与数据库服务器通信

4. 数据库服务器层(数据访问层)

**作用**:持久化存储系统数据。

**技术栈**:

  • **数据库**:MySQL 8.0
  • **数据库名称**:bi_fat2026

**特点**:

  • 关系型数据库,支持事务处理
  • 通过JDBC与应用服务器通信
  • 存储所有业务数据

数据流分析

请求流程(正向)

  1. **用户操作**:用户在浏览器中进行操作(如点击按钮)
  2. **HTTPS请求**:浏览器通过HTTPS向Web服务器发送请求
  3. **静态资源/API代理**:
  • 如果是静态资源请求,Web服务器直接返回
  • 如果是API请求,Web服务器反向代理到应用服务器
  1. **业务处理**:应用服务器按Controller→Service→Mapper的顺序处理请求
  2. **数据操作**:Mapper层通过JDBC操作数据库
  3. **响应返回**:处理结果按原路返回给用户

响应流程(反向)

  1. **数据库响应**:数据库返回查询/操作结果
  2. **业务封装**:应用服务器将数据封装为业务对象
  3. **JSON序列化**:Controller层将结果序列化为JSON
  4. **HTTP响应**:应用服务器返回HTTP响应给Web服务器
  5. **HTTPS响应**:Web服务器将响应转发给客户端
  6. **界面更新**:浏览器解析响应并更新界面

架构优势

1. 安全性

  • **HTTPS加密**:客户端与Web服务器之间使用HTTPS,防止数据窃听
  • **反向代理**:Web服务器隐藏了应用服务器的真实地址
  • **分层防护**:每层都有独立的安全策略

2. 可扩展性

  • **水平扩展**:每层都可以独立扩展
  • **负载均衡**:Web服务器层可以轻松添加负载均衡
  • **微服务演进**:为未来向微服务架构演进奠定基础

3. 可维护性

  • **关注点分离**:各层职责清晰,便于团队分工
  • **技术栈独立**:每层可以使用最适合的技术
  • **易于测试**:各层可以独立进行单元测试

4. 性能优化

  • **静态资源分离**:Web服务器专门处理静态资源,减轻应用服务器压力
  • **连接池管理**:应用服务器可以管理数据库连接池
  • **缓存策略**:可以在各层实施缓存策略

部署建议

1. 硬件配置

  • **Web服务器**:2核4GB内存,SSD存储
  • **应用服务器**:4核8GB内存,根据业务负载调整
  • **数据库服务器**:8核16GB内存,高性能SSD,建议主从复制

2. 网络配置

  • **防火墙规则**:
  • 客户端只能访问Web服务器的443端口
  • Web服务器只能访问应用服务器的9020端口
  • 应用服务器只能访问数据库服务器的3306端口
  • **域名配置**:为Web服务器配置域名和SSL证书

3. 监控与日志

  • **应用监控**:监控各服务器的CPU、内存、磁盘使用率
  • **业务监控**:监控关键业务接口的响应时间和成功率
  • **日志收集**:集中收集各层日志,便于问题排查

常见问题与解决方案

1. 跨域问题

**问题**:前端直接调用后端API时可能出现跨域错误

**解决方案**:在Web服务器配置CORS,或在应用服务器添加CORS过滤器

2. 性能瓶颈

**问题**:数据库查询慢导致整体性能下降

**解决方案**:

  • 优化SQL语句,添加索引
  • 使用数据库连接池
  • 考虑引入缓存(如Redis)

3. 单点故障

**问题**:任一服务器宕机导致系统不可用

**解决方案**:

  • Web服务器和应用服务器使用集群部署
  • 数据库使用主从复制或集群方案
  • 配置负载均衡和健康检查

总结

本文详细介绍了系统的三层B/S架构,通过清晰的架构图和分层说明,展示了从客户端到数据库的完整数据流。该架构具有安全性高、可扩展性强、易于维护等优点,为系统的稳定运行提供了坚实基础。

在实际部署和运维过程中,建议根据业务规模和技术团队能力,选择合适的硬件配置、网络策略和监控方案,确保系统能够稳定、高效地运行。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 系统架构概述
  • 架构图与部署结构
  • 各层详细说明
    • 1. 客户端层(表示层)
    • 2. Web服务器层(中间层)
    • 3. 应用服务器层(业务逻辑层)
    • 4. 数据库服务器层(数据访问层)
  • 数据流分析
    • 请求流程(正向)
    • 响应流程(反向)
  • 架构优势
    • 1. 安全性
    • 2. 可扩展性
    • 3. 可维护性
    • 4. 性能优化
  • 部署建议
    • 1. 硬件配置
    • 2. 网络配置
    • 3. 监控与日志
  • 常见问题与解决方案
    • 1. 跨域问题
    • 2. 性能瓶颈
    • 3. 单点故障
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档