-
language:golang(1.17.6)
-
backend:
Environment | Version |
---|---|
golang | 1.17.6 |
etcd | 3.5.0 |
go-zero | 1.4.2 |
go-stash | 1.0.8 |
elasticsearch | 7.17.8 |
filebeat | 7.17.8 |
kibana | 7.17.8 |
asynq | 0.24.0 |
zookeeper | 3.8.0 |
kafka | 3.3.1 |
nginx | 1.21.5 |
docker | 20.10.21 |
docker-compose | 2.13.0 |
kubernetes | 暂定 |
DTM | 暂定 |
jaeger | 1.41.0 |
Prometheus | 2.41.0 |
grafana | 9.3.2 |
mysql | 8.0.28 |
redis | 6.2.5 |
- frontend:
Environment | Version |
---|---|
vue3 | |
element-plus | |
bootstrap | |
axios |
- Mysql DB Name:cloudStorageSystem
-
用户登录,注册(邮件注册),文件上传、下载、预览,用户信息修改,不同权限登录(管理员、用户),页面美化(axios前后的进度条,文件目录的树结构,文件下载界面,首页结构和组件需要改善)
-
文件服务(fastdfs客户端、文件上传、下载、预览、session验证、文件元数据管理(mysql、redis))
-
用户服务(登录、注册、修改、发邮件、不同权限的表设计、session、验证码)go-zero(自动降载、自动熔断、鉴权、数据记录、监控报警、超时控制、链路追踪...)
-
要求:对于微服务系统,我们使用DTM进行分布式事务管理,同时集成日志管理系统(报警日志、链路追踪日志、服务日志、nginx网关日志)(filebeat、kafka、go-stash、elasticsearch、kibana、jeager、Prometheus),服务数据方面使用传统的mysql、redis集群, 对于redis来说使用主从控制+哨兵模型来追求并发量,同时对于mysql来说,根据情况使用分库分表使用mysql集群。前期使用docker-compose进行容器化部署,使用nginx网关进行反向代理,后期升级为kubernetes做自动拆箱装箱,横向扩展,负载均衡