ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

网络安全学习平台系统设计方案

2020-12-30 07:32:25  阅读:277  来源: 互联网

标签:网络安全 服务 题目 平台 视图 biz 设计方案 架构 项目


项目总体架构

本项目为网络安全学习平台的搭建,采用微服务架构模式,主要用go语言编写,配合前端三件套加上MYSQL数据库,Redis缓存,Kafka构建消息队列,Elastic Search做用户检索,gRPC做内网服务调用,Node做前端鉴权和统一API接口。项目总体结构如下:

 

运行环境和技术选型说明:

前端:HTML,CSS,JavaScript

后端:Golang

数据库:MySQL8

缓存: Redis

消息队列: Kafka

搜索: Elastic Search

IDE: VS Code

服务器: 阿里云ECS学生服务器

 

依赖视图:

以评论系统为例,下图中显示了具体的业务流程

分解视图:

将项目的各个子业务拆分成微服务,并设置BFF聚合层,用来对业务逻辑的进一步封装,而底层微服务更具平台通用性,具体业务逻辑如下:

部署视图:

本项目采用阿里云服务器,并采用docker进行容器部署

 

执行视图:

 

 

人员分配:

 

 

 实现视图:源代码目录结构

 

 

  • /api   API协议定义目录,包括protobuf文件以及生成的go文件
  • /config   配置文件模板或默认配置
  • /test    额外的外部应用测试程序和测试数据
  • /cmd   本项目的主干
    • /interface  对外的BFF服务层,接受来自用户的请求,暴露HTTP/gRPC接口
    • /service   对内的微服务,仅接受来自内部其他服务以及网关的请求
    • /admin  区别于service,为面向管理员的服务
    • /job  流式任务处理的服务
  • /internal    避免同业务下跨目录引用内部struct
    • /biz   业务逻辑的组装层,类似DDD的domain层,repo接口在这里定义,使用依赖倒置原则
    • /data  业务数据访问层,包含cache,DB等封装,实现了biz的repo接口
    • /service  实现了api定义的服务层,类似DDD的application层,处理DTO到biz实体的转换
    • /pkg   服务内部所依赖的第三方包

    

 

 

数据库设计:

 用户表:                  

 

文章表:

 

评论表

 

系统概念原型的核心工作机制:

 普通用户

  • 进行注册和登录
  • 查看题目列表
  • 选择题目作答
  • 查看题目的题解
  • 对进行评论
  • 发布自己的题解

  

  管理员

  • 添加或删除题目
  • 修改题目的答案
  • 对评论进行管理
  • 对用户进行管理

 

总结

本项目结合最新的工程架构思想,如DDD领域驱动设计,微服务架构,并采用业界比较成熟的中间件,如MySQL,Redis等,进行了一次架构层面的尝试,还考虑了高并发时的情况,可以说,至少在架构层面,本项目具备一定的优势。

 

标签:网络安全,服务,题目,平台,视图,biz,设计方案,架构,项目
来源: https://www.cnblogs.com/hcds/p/14209602.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有