一、理念

致力于打造一款优秀的分布式微服务解决方案。

二、技术架构

分布式分布式微服务框架 - 图1

三、技术选型

  • JDK版本:1.8;
  • 项目依赖管理:Maven3.6.2;
  • 版本控制工具:Git;
  • 分布式框架:SpringCloud+SpringCloud Alibaba;
  • 微服务基础框架:SpringBoot;
  • 接口鉴权框架:Sa-Token;
  • 缓存:Redis;
  • 关系型数据库:MySQL;
  • 接口文档自动生成框架:Knife4j;
  • 持久层框架:MyBatis-Plus;
  • 第三方工具类框架:Hutool;
  • 数据库连接池:Druid;
  • 多数据源框架:dynamic-datasource-spring-boot-starter;
  • 限流熔断:Sentinel;
  • 分库分表中间件:MyCat;
  • 爬虫框架:JSOUP/WebMagic;
  • 日志框架:Lombok;
  • 服务注册与配置中心:Nacos;
  • Excel处理:Apache Poi;
  • 分布式定时任务:Quartz;
  • 服务链路追踪:SpringCloud Sleuth+Zipkin;
  • Word模板引擎:Poi-tl;
  • 消息队列:Kafka;
  • 大数据存储与计算处理:Hadoop;
  • 分布式搜索引擎:Elastic Search;
  • 文档数据库:MongoDB。

    四、系统模块

    部分相应的效果图:

分布式分布式微服务框架 - 图2

分布式分布式微服务框架 - 图3

分布式分布式微服务框架 - 图4

  1. ├── yc-gateway // 网关服务 [8080]
  2. ├── yc-auth // 认证服务 [8081]
  3. ├── yc-api // 接口服务
  4. ├── yc-common // 通用模块
  5. └── yc-common-core // 核心模块
  6. └── yc-common-knife4j // 接口文档自动生成模块
  7. └── yc-common-redis // Redis模块
  8. └── yc-common-security // 安全模块
  9. └── yc-common-elasticsearch // ElasticSearch模块
  10. └── yc-common-mongodb // MongoDB模块
  11. └── yc-common-rabbitmq // RabbitMQ模块
  12. └── yc-common-activemq // ActiveMQ模块
  13. └── yc-common-kafka // Kafka模块
  14. └── yc-common-rocketmq // RocketMQ日志模块
  15. └── yc-common-wx // 微信生态模块
  16. └── yc-common-crawler // 爬虫模块
  17. └── yc-common-seata // 分布式事务Seata模块
  18. └── yc-common-txlcn // 分布式事务Tx-LCN模块
  19. └── yc-common-quartz // 分布式定时任务Quartz模块
  20. └── yc-common-xxljob // 分布式定时任务xxl-job模块
  21. └── yc-common-elasticjob // 分布式定时任务Elastic-Job模块
  22. ├── yc-modules // 微服务模块
  23. └── yc-admin // 统一用户微服务 [9000]
  24. └── yc-cms // 内容管理微服务 [9001]
  25. └── yc-crawler // 爬虫微服务 [9002]
  26. └── yc-file // 文件微服务 [9003]
  27. └── yc-job // 定时任务服务 [9004]
  28. └── yc-plugins // 插件微服务 [9005]
  29. └── yc-wechat // 微信生态微服务 [9006]
  30. └── yc-monitor-server // 监控微服务 [9100]
  31. ├──pom.xml Copy to clipboardErrorCopied

五、功能

当前版本所具有的功能如下:

  • 用户登录/注册、登录状态、用户信息、退出;
  • 微服务接口鉴权模块化;
  • 数据爬虫(爬取真气网、博客园、思否、CSDN等网站数据);
  • 分布式定时任务微服务化;
  • 用户管理;
  • 文章管理;
  • 分类管理;
  • 标签管理;
  • 文件管理;
  • 接口文档模块化;
  • Sentinel限流熔断;
  • 分布式Token;
  • 默认集成博客园、聚合等第三方API;
  • 集成Redis;
  • 集成ElasticSearch;
  • 集成RabbitMQ;
  • 集成MongoDB;
  • 集成ActiveMQ;
  • 微服务日志模块化(支持MySQL、MongoDB等数据存储仓库);
  • 接口文档网关统一化;
  • 集成微信生态(支持微信公众号、微信支付、微信开放平台、微信小程序、企业号/企业微信等);
  • 集成Admin Server微服务监控;
  • 集成分布式事务Seata;
  • 集成分布式事务Tx-LCN;
  • 集成消息队列Kafka;
  • 集成消息队列RocketMQ;
  • 集成分布式定时任务Xxl-Job;
  • 微信生态方案模块化;
  • 集成分布式定时任务Elastic-Job;
  • Quartz定时任务模块化;
  • 爬虫模块化;
  • 集成Zipkin+Sleuth分布式链路追踪。

    本次版本V1.0.3更新

  • 集成分布式事务Seata;

  • 集成分布式事务Tx-LCN;
  • 集成Kafka;
  • 集成RocketMQ;
  • 集成分布式定时任务Xxl-Job;
  • 微信生态方案模块化;
  • 集成分布式定时任务Elastic-Job;
  • Quartz定时任务模块化;
  • 爬虫模块化;
  • 集成Zipkin+sleuth分布式链路追踪;
  • 部分问题修复;
  • 文档更新1.0.3。

    六、环境

    1.开发环境

  • IDE:IntelliJ IDEA 2018.2+版本以上均支持;

  • DB:MySQL5.7.x或MySQL8.x版本均支持;
  • JDK:1.8;
  • Maven: 3.x版本均支持;
  • Nacos:1.3.x版本均支持;
  • Redis: 5.x版本均支持;
  • MongoDB:4.x版本均支持;
  • ElasticSearch:7.x版本均支持;
  • RabbitMQ:3.x版本均支持;
  • ActiveMQ:5.x版本均支持;
  • Kafka:2.x版本均支持;
  • RocketMQ:4.x版本均支持;
  • Seata:1.3.x版本均支持;
  • Tx-LCN:5.x版本均支持;
  • Xxl-Job:2.x版本均支持;
  • Zipkin:2.x版本均支持;
  • Elastic-Job:3.x版本支持。

    2.服务器部署环境

  • DB:MySQL5.7.x或MySQL8.x版本均支持;

  • JRE:JRE1.8;
  • Nacos:1.3.x版本均支持;
  • Redix:5.x版本均支持;
  • MongoDB:4.x版本均支持;
  • ElasticSearch:7.x版本均支持;
  • RabbitMQ:3.x版本均支持;
  • ActiveMQ:5.x版本均支持;
  • Kafka:2.x版本均支持;
  • RocketMQ:4.x版本均支持;
  • Seata:1.3.x版本均支持;
  • Tx-LCN:5.x版本均支持;
  • Xxl-Job:2.x版本均支持;
  • Zipkin:2.x版本均支持;
  • Elastic-Job:3.x版本支持。
  • 操作系统:Windows Server和Ubuntu、CenOS等均支持。

    七、项目启动

    项目启动顺序分别为:

  • yc-gateway;

  • yc-auth;
  • yc-admin;
  • yc-cms;
  • yc-crawler;
  • yc-file;
  • yc-job;
  • yc-plugins;
  • yc-wechat。

其中涉及数据爬虫相关,必须确保yc-crawler、yc-plugins、yc-job等运行起来才行。
目前版本已经更新到V1.0.3:

  • 集成分布式事务Seata;
  • 集成分布式事务Tx-LCN;
  • 集成Kafka;
  • 集成RocketMQ;
  • 集成分布式定时任务Xxl-Job;
  • 微信生态方案模块化;
  • 集成分布式定时任务Elastic-Job;
  • Quartz定时任务模块化;
  • 爬虫模块化;
  • 集成Zipkin+Sleuth分布式链路追踪;
  • 部分问题修复;
  • 文档更新1.0.3。

最新代码可访问对应的代码仓库:
https://github.com/developers-youcong/yc-framework
最新文档访问官方网站:
http://framework.youcongtech.com/
历史版本查看:
https://github.com/developers-youcong/yc-framework/releases