基本情况说明:
我学校开设的《软件开发环境与工具》是以项目为导向的,本次实验虽然是用 Visio制作软件项目中相应的图形,但是难点不在于Visio的使用,而是项目思想的一种体现。
团队成员有五人,在原型设计(实验2)之前已经完成 API文档的编写,本次实验3是结合2描述整个系统的数据流和架构等。
因为本人作为组长要上台展示,故文档不涉及细节具体的描述(担心上台讲解回和念文档差不多)
本次的实验,也是对我们从3月份接触Java八个月以来的一种检验。
下面即为正文内容,好的地方,共同学习;不足之处,欢迎拍砖。
(2)运动功能
分为跑步,行走,骑行,瑜伽,放松和拉伸
分为长发及腰,我型我塑,颈椎挺住,码农装备,极客时间,立个flag。以及搜索,发布等功能
可接受私人消息,和 区的通知消息
三、项目流程图
程序流程图、数据流图、业务流程图、 络略
下面介绍项目流程图
五、项目系统架构图
下面展示的是系统架构图:
(2) 后端部分
团队具备的条件:
- 团队有六台服务器可用
- 三人都有微服务相关的经验。
技术选型:
- 开发框架: Springboot
- 服务框架:Dubbo
- 注册中心:Zookeeper
- 反向代理:Nginx
- 第三方依赖管理工具:Maven
- 工具框架:Guns
- 分布式数据库系统 : Mycat
- 数据库:Mysql
- 容器部署:Docker
- 容器的集群管理平台:kubernetes (简称k8s)
2.1 服务集群
后端向前端提供的功能以微服务的形式进行展现,用以实现高可用。
权限控制采用RBAC的设计,敏感数据采用 MD5加盐 进行加密,采用传统的JSON WEB TOKEN(JWT)鉴权方式
遗憾和不足之处在于无法实现高性能最重要的一块地方–分布式缓存(一般使用Redis),原因是组中没人能驾驭得了。但是我们给出的解决方案是 使用本地缓存(热点数据 LRU)以及服务的负载均衡 还有并发控制。
为了避免高并发下,服务雪崩等以及赢得更好的用户体验,我们采取的负载均衡策略是 最少活跃调用数 以及 服务熔断、服务降级 和 服务限流(令牌桶算法)。
最后就是服务分组和分组聚合了,这是一种处理数据库分表的一种策略。
2.3 FTP服务器
可替代:对象存储Object Storage Service (OSS)
2.4 数据库集群
Mycat是一个超级数据库代理,一种高可用中间件。
2.5 Nginx集群
web应用服务器。
2.6 CDN
考虑CDN的加速
2.7 部署
Docker +K8S
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!