一、理念
二、特性
- 让开发分布式微服务应用更简单;
- 让部署分布式微服务应用更简单;
- 集成众多行业领域优秀的解决方案;
-
三、架构思想
模块化;
- 简单化;
- 自动化;
- 易扩展;
- 轻量级;
-
四、技术架构
五、技术选型
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;
- 分库分表中间件:ShardingJdbc、MyCat;
- 爬虫框架:JSOUP/WebMagic;
- 日志框架:Lombok;
- Excel处理:Apache Poi;
- 分布式定时任务:Quartz、Xxl-Job、Elastic-Job、ShedLock;
- 服务链路追踪:SpringCloud Sleuth+Zipkin;
- Word模板引擎:Poi-tl;
- 消息队列:Kafka、ActiveMQ、RabbitMQ、RocketMQ;
- 大数据存储与计算处理:Hadoop;
- 分布式搜索引擎:Elastic Search;
- 文档数据库:MongoDB;
- SOA:Apache CXF;
- 服务注册与配置中心:Nacos、Eureka、Dubbo;
- 支付:IJPay;
- 微信生态支持:WxJava;
- 多种通信支持:gRPC、HTTP等;
- 分布式处理引擎:Apache Flink;
- 文件存储:私有云或公有云均支持;
- 单元测试框架:Junit;
- 分布式事务:Seata、Tx-LCN。
```java
├── yc-gateway // 网关服务 [8080]
├── yc-auth // 认证服务 [8081]
├── yc-api // 接口服务
├── yc-common // 通用模块
│ └── yc-common-core // 核心模块
│ └── yc-common-knife4j // 接口文档自动生成模块
│ └── yc-common-redis // Redis模块
│ └── yc-common-security // 安全模块
│ └── yc-common-elasticsearch // ElasticSearch模块
│ └── yc-common-mongodb // MongoDB模块
│ └── yc-common-rabbitmq // RabbitMQ模块
│ └── yc-common-activemq // ActiveMQ模块
│ └── yc-common-kafka // Kafka模块
│ └── yc-common-rocketmq // RocketMQ日志模块
│ └── yc-common-wx // 微信生态模块
│ └── yc-common-crawler // 爬虫模块
│ └── yc-common-seata // 分布式事务Seata模块
│ └── yc-common-txlcn // 分布式事务Tx-LCN模块
│ └── yc-common-quartz // 分布式定时任务Quartz模块
│ └── yc-common-xxljob // 分布式定时任务xxl-job模块
│ └── yc-common-logstash // 分布式日志管理(ELK)模块
│ └── yc-common-pay // 第三方支付模块
│ └── yc-common-hadoop // 大数据Hadoop模块
│ └── yc-common-flink // 分布式计算引擎模块
│ └── yc-common-netty // Netty模块
│ └── yc-common-openfeign // 分布式微服务通信模块
│ └── yc-common-mp // MyBatis-Plus模块
│ └── yc-common-linktrack // 分布式链路追踪模块
│ └── yc-common-cs // 对象云存储模块
│ └── yc-common-monitor // 微服务监控模块
│ └── yc-common-test // 单元测试模块
│ └── yc-common-nacos // nacos模块
│ └── yc-common-eureka // eureka模块
│ └── yc-common-cxf // webservice模块
│ └── yc-common-sentinel // sentinel模块
│ └── yc-common-shardingjdbc // shardingjdbc模块
│ └── yc-common-dubbo // dubbo模块
│ └── yc-common-grpc // grpc模块
│ └── yc-common-shedlock // shedlock模块
│
├── yc-modules // 微服务模块 │ └── yc-admin // 统一用户微服务 [9000] │ └── yc-cms // 内容管理微服务 [9001] │ └── yc-crawler // 爬虫微服务 [9002] │ └── yc-file // 文件微服务 [9003] │ └── yc-job // 定时任务服务 [9004] │ └── yc-plugins // 插件微服务 [9005] │ └── yc-wechat // 微信生态微服务 [9006] │ └── yc-monitor-server // 监控微服务 [9100] ├──pom.xml
```