Eurynome Cloud 微服务能力治理和开发平台
Eurynome Cloud 是一款微服务能力治理和开发平台。基于 SpringBoot2.4.5、Spring Cloud 2020.0.2、Spring Cloud Alibaba 2021.1、Nacos 2.0.1 等最新版本开发,遵循 SpringBoot 编程思维,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等性能,代码简洁,架构清晰,非常适合学习和企业作为根底框架应用。
1、性能介绍
特点:
- 优化的代码分包和包依赖,代码包职责明确,躲避无意义的依赖以及反复依赖,对根底依赖组件进行高度封装,升高 IDE 索引工夫,晋升开发效率
- 遵循微服开发模式,强化整体的可配置性,依赖性能均能够通过 @EnableXXX 开启,反对策略化的注入扭转局部外围代码的实现逻辑。提供的 starter,开箱即用,可零配置创立服务,疾速进行开发
- 基于 JetCache 自研缓存拓展,反对分页和条件查问缓存动静更新
- 拓展 OAuth2 默认登录,反对多种验证码和登录数据加密传输,可通过配置进行自定义设置。
- 多数据库反对,默认采纳 Postgresql 数据库,同时反对 Spring Data Jpa 和 Mybatis
- 多种音讯队列反对,适配 RabbitMQ 和 Kafka,默认应用 Kafka,反对音讯总线 (Spring Cloud Bus)
- Rest 接口自动化扫描生成权限数据,反对扫描包和扫描注解动静配置
- 采纳 Camunda 实现工作流服务,反对在线编辑
- 同时反对分布式和单体式两种架构,基于单体式架构可疾速搭建基于 OAuth2 的前后端拆散利用
- 共享式、统一化多环境配置模式,Yml、Docker 均采纳此形式配置,防止同类配置多出批改的问题
2、技术栈和版本阐明
(1)Spring 全家桶及核心技术版本
组件 | 版本 | |
---|---|---|
Spring Boot | 2.4.5 | |
Spring Cloud | 2020.0.2 | |
Spring Cloud Alibaba | 2021.1 | |
Spring Boot Admin | 2.4.1 | |
Nacos | 2.0.1 | |
Sentinel | 1.8.0 | |
Seata | 1.3.0 |
Spring 全家桶版本对应关系,详见:版本阐明
(2)所波及的相干的技术:
- JSON 序列化:Jackson & FastJson
- 音讯队列:Kafka 适配 RabbitMQ,反对音讯总线 (Spring Cloud Bus)
- 数据缓存:JetCache + Redis(两级缓存)
- 数据库:Postgresql,MySQL,Oracle …
- 前端实现:Vue + Vuetify(单体版 Vue + Vuetify + Typescript + 模块化)
- 长久层框架:Spring Data Jpa & Mybatis
- API 网关:Gateway
- 服务注册 & 发现和配置核心: Nacos
- 服务生产:OpenFeign & RestTemplate & OkHttp3
- 负载平衡:Ribbon
- 服务熔断 & 降级 & 限流:Sentinel
- 我的项目构建:Maven
- 分布式事务:Seata
- 服务监控:Spring Boot Admin
- 链路跟踪:Skywalking
- 文件服务:阿里云 OSS/Minio
- 数据调试:p6spy
- 日志核心:ELK
- 日志收集:Logstash Logback Encoder
3、版本号阐明
本零碎版本号,分为四段。
- 第一段和第二段,与 Spring Boot 版本对应,依据采纳的 Spring Boot 版本变更。例如,以后采纳 Spring Boot 2.4.5 版本,那么就以 2.4.X.X 结尾
- 第三段,示意零碎性能的变动
- 第四段,示意零碎性能保护及优化状况
4、工程构造
eurynome-cloud
├── configurations -- 配置文件脚本和对立 Docker build 上下文目录
├── dependencies -- 工程 Maven 顶级依赖,对立管制版本和依赖
├── documents -- 工程相干文档
├── packages -- 根底通用依赖包
├ ├── eurynome-cloud-common -- 公共工具类
├ ├── eurynome-cloud-data -- 数据长久化、数据缓存以及 Redis 等数据处理相干代码组件
├ ├── eurynome-cloud-rest -- Rest 相干代码组件
├ ├── eurynome-cloud-crud -- CRUD 相干代码组件
├ ├── eurynome-cloud-sercurity -- Security 通用代码
├ ├── eurynome-cloud-oauth -- OAuth2 通用代码
├ ├── eurynome-cloud-message -- 音讯队列、BUG 相干代码组件
├ ├── eurynome-cloud-kernel -- 微服务接入平台必备组件
├ ├── eurynome-cloud-oauth-starter -- 自定义 OAuth2 Starter
├ └── eurynome-cloud-starter -- 微服务外围 Starter
├── platform -- 平台外围服务
├ ├── eurynome-cloud-gateway -- 服务网关
├ ├── eurynome-cloud-management -- Spring Boot Admin 监控服务
├ └── eurynome-cloud-uaa -- 对立认证模块
├── services -- 平台业务服务
├ ├── eurynome-cloud-upms-api -- 通用用户权限 api
├ ├── eurynome-cloud-upms-logic -- 通用用户权限 service
├ ├── eurynome-cloud-upms-rest -- 通用用户权限 rest 接口
├ ├── eurynome-cloud-upms-ability -- 通用用户权限服务
└── └── eurynome-cloud-bpmn-ability -- 工作流服务
5、我的项目地址
- 后端 Gitee 地址:https://gitee.com/herodotus/eurynome-cloud
- 单体版示例工程:https://gitee.com/herodotus/eurynome-cloud-athena
- 前端 Gitee 地址:https://gitee.com/herodotus/eurynome-cloud-ui
6、开源协定
Apache Licence 2.0(英文原文)Apache Licence 是驰名的非盈利开源组织 Apache 采纳的协定。该协定和 BSD 相似,同样激励代码共享和尊重原作者的著作权,同样容许代码批改,再公布(作为开源或商业软件)。须要满足的条件如下:
- 须要给代码的用户一份 Apache Licence
- 如果你批改了代码,须要在被批改的文件中阐明。
- 在延长的代码中(批改和有源代码衍生的代码中)须要带有原来代码中的协定,商标,专利申明和其余原来作者规定须要蕴含的阐明。
- 如果再公布的产品中蕴含一个 Notice 文件,则在 Notice 文件中须要带有 Apache Licence。你能够在 Notice 中减少本人的许可,但不能够体现为对 Apache Licence 形成更改。Apache Licence 也是对商业利用敌对的许可。使用者也能够在须要的时候批改代码来满足需要并作为开源或商业产品公布 / 销售。
7、用户权利
- 容许收费用于学习、毕设、公司我的项目、私活等。
- 对未通过受权、不遵循 Apache 2.0 协定以及代码 50% 以上类似度二次开源或者商业化咱们将查究到底。
- 参考请注明:参考自 Eurynome Cloud:https://gitee.com/herodotus/e…
- 留神:若禁止条款被发现有权追讨 19999 的受权费。
8、交换反馈
- 欢送提交 ISSUS,请写分明问题的具体起因,重现步骤和环境 (上下文)
- 博客:https://blog.csdn.net/Pointer_v
- 邮箱:herodotus@aliyun.com
更多高级性能,详询 herodotus@aliyun.com
9、界面预览