-
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做自动拆箱装箱,横向扩展,负载均衡