软件架构初始
基本概念:
1.分布式:
系统中的多个模块在不同的服务器上部署,即可称之为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上
2、高可用
系统中部分节点失效时,其它节点能够继续替他提供服务,则可以认为系统具有高可用性
3.集群
一个特定领域的软件部署在多台服务器上并作为一个整个提供一类服务,这个整体就被称之为集群
3.1负载均衡
请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,是系统中的每个节点能够均匀的处理请求的负载,则可以认为系统是负载均衡的
3.2正向代理和反向代理
正向代理是代理服务器代替系统内部来访问外部网络的过程,反向代理是外部请求访问系统时听过代理服务器转发到内部服务去的过程
本地缓存和分布式缓存
数据库读写分离设计
其中涉及到的技术包括:mycat,他是数据库的中间件,可以通过他来组织数据库的分离读写和数据库的分表,客户端通过他来访问下层数据库,还会涉及数据库同步,数据一致的问题
数据库按照业务分库:
云平台服务的部署
诺依系统简介
微服务技术选型:
1.后端的技术栈:
MyBatis、Spring、Spring Boot、Spring Cloud & Alibaba、Nacos、Sentinel
2、前端VUE技术栈
ES6、vue、vuex、vue-router、vue-cli、axios、element-ui
系统为服务模块骨架
后端项目的骨架:
com.ruoyi
├── ruoyi-ui // 前端框架 [80]
├── ruoyi-gateway // 网关模块 [8080]
├── ruoyi-auth // 认证中心 [9200]
├── ruoyi-api // 接口模块
│ └── ruoyi-api-system // 系统接口
├── ruoyi-common // 通用模块
│ └── ruoyi-common-core // 核心模块
│ └── ruoyi-common-datascope // 权限范围
│ └── ruoyi-common-datasource // 多数据源
│ └── ruoyi-common-log // 日志记录
│ └── ruoyi-common-redis // 缓存服务
│ └── ruoyi-common-security // 安全模块
│ └── ruoyi-common-swagger // 系统接口
├── ruoyi-modules // 业务模块
│ └── ruoyi-system // 系统模块 [9201]
│ └── ruoyi-gen // 代码生成 [9202]
│ └── ruoyi-job // 定时任务 [9203]
│ └── ruoyi-file // 文件服务 [9300]
├── ruoyi-visual // 图形化管理模块
│ └── ruoyi-visual-monitor // 监控中心 [9100]
├──pom.xml // 公共依赖
前端项目骨架结构
├── build // 构建相关
├── bin // 执行脚本
├── public // 公共文件
│ ├── favicon.ico // favicon图标
│ └── index.html // html模板
├── src // 源代码
│ ├── api // 所有请求
│ ├── assets // 主题字体等静态资源
│ ├── components // 全局公用组件
│ ├── directive // 全局指令
│ ├── layout // 布局
│ ├── router // 路由
│ ├── store // 全局 store管理
│ ├── utils // 全局公用方法
│ ├── views // view
│ ├── App.vue // 入口页面
│ ├── main.js // 入口 加载组件 初始化等
│ ├── permission.js // 权限管理
│ └── settings.js // 系统配置
├── .editorconfig // 编码格式
├── .env.development // 开发环境配置
├── .env.production // 生产环境配置
├── .env.staging // 测试环境配置
├── .eslintignore // 忽略语法检查
├── .eslintrc.js // eslint 配置项
├── .gitignore // git 忽略项
├── babel.config.js // babel.config.js
├── package.json // package.json
└── vue.config.js // vue.config.js
系统微服务技术架构:
诺依系统的分布式架构设计: