skill6 / skill6-website-backend

java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot、spring mvc、mybatis、docker、ELK、redis、vue.js、node.js等技术实现的技术分享交流网站。网站名称:技术流,英文名:skill6。主要功能有:登录注册、单点登录、restful设计、文章及评论、代码及资源下载、主题讨论等。持续更新中...

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

skill6 building status codecov Apache License 2 Average time to resolve an issue Percentage of issues still open

技术流skill6网站的架构设计、需求分析、技术选型等


1、架构设计

image


2、技术选型

2.1 后端

技术 功能点 官网链接
Maven 项目依赖管理 http://maven.apache.org/
Spring 容器 http://projects.spring.io/spring-framework/
Spring Boot spring框架 http://spring.io/projects/spring-boot
SpringMVC restful接口 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc
Shiro 权限控制 http://shiro.apache.org/
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis Generator 实体类和DAO代码生成 http://www.mybatis.org/generator/index.html
Druid 数据库连接池 https://github.com/alibaba/druid
Redis 缓存 https://redis.io/
Log4J 日志 http://logging.apache.org/log4j/1.2/
Sequence 分布式ID生产 http://git.oschina.net/yu120/sequence

2.2 前端

技术 名称 官网
Vue.js 构建用户界面的渐进式框架 https://cn.vuejs.org/
JQuery 轻量级 JavaScript 库 http://jquery.com/
Bootstrap 前端框架 http://getbootstrap.com/
Editor.md Markdown编辑器 https://github.com/pandao/editor.md

2.3 服务器

技术 名称 官网
Docker 容器 https://www.docker.com/
Nginx 负载均衡 http://nginx.org/

3、数据库设计

image

补充说明

  1. 目前已设计上述15个表,其中category_info表数据量较小,所以设计包含文章分类、代码分类等所有分类,通过type字段区别;
  2. type(类型)字段使用枚举一一映射;
  3. valid字段对应的tinyint只有1和0两个值,使用booealn值做映射;
  4. id统一使用分布式id生成器生成,便于后期做分库分表,分布式id默认长度不超过19位,通过传入workedId和datacenterId两个参数即可生成;
  5. 用户表包含管理用户和普通用户两种,通过type字段区分,用户表又分为用户重要信息(user_privacy_info)和其他信息(user_info);
  6. 图片和文件使用同一种方式存储,但是使用不同的表,因为图片数据量明显大于其他文件;
  7. 文章评论和灌水区(类似主题问答)使用不同的表区分;
  8. 文章和代码使用不同的表,文章包含文字+代码等,而代码是纯代码,如序列化工具类;
  9. 用户修改信息、用户登录记录、用户访问网站和文章等的记录都详细记载,用于后期数据存储、分析和做推荐等;
  10. 版本信息表用户更新网站版本说明及特性等;

4、沟通交流

点击加入QQ群

image

About

java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot、spring mvc、mybatis、docker、ELK、redis、vue.js、node.js等技术实现的技术分享交流网站。网站名称:技术流,英文名:skill6。主要功能有:登录注册、单点登录、restful设计、文章及评论、代码及资源下载、主题讨论等。持续更新中...


Languages

Language:Java 96.6%Language:TSQL 3.4%