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 Boot2.4.5
Spring Cloud2020.0.2
Spring Cloud Alibaba2021.1
Spring Boot Admin2.4.1
Nacos2.0.1
Sentinel1.8.0
Seata1.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、界面预览