【记录】一次项目架构的设计

基本情况说明:

我学校开设的《软件开发环境与工具》是以项目为导向的,本次实验虽然是用 Visio制作软件项目中相应的图形,但是难点不在于Visio的使用,而是项目思想的一种体现。

团队成员有五人,在原型设计(实验2)之前已经完成 API文档的编写,本次实验3是结合2描述整个系统的数据流和架构等。

因为本人作为组长要上台展示,故文档不涉及细节具体的描述(担心上台讲解回和念文档差不多)

本次的实验,也是对我们从3月份接触Java八个月以来的一种检验。

下面即为正文内容,好的地方,共同学习;不足之处,欢迎拍砖。


(2)运动功能

分为跑步,行走,骑行,瑜伽,放松和拉伸

分为长发及腰,我型我塑,颈椎挺住,码农装备,极客时间,立个flag。以及搜索,发布等功能

可接受私人消息,和 区的通知消息

三、项目流程图

程序流程图、数据流图、业务流程图、 络略

下面介绍项目流程图

五、项目系统架构图

下面展示的是系统架构图:

(2) 后端部分

团队具备的条件:

  1. 团队有六台服务器可用
  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进行处理,非常感谢!

上一篇 2019年10月9日
下一篇 2019年10月9日

相关推荐