自研应用框架,开箱即用,零侵入性接入,遵循 Spring 官方的模块化管理,保证业务依赖可选项。
APACHE-2.0 License
Eden* Architect 致力于提供企业开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,您只需要添加一些注解和少量配置,就可以将 Spring Boot 应用接入微服务解决方案,通过中间件来迅速搭建分布式应用系统。
参考文档请查看 WIKI 。
XxlJob
、CAT
、Netty
、Arthas
等组件的集成。消息队列
、缓存
、短信平台
、邮件
、Excel
等组件的动态适配。多级缓存
、分布式锁
、分布式唯一ID
、幂等性处理
、业务流程编排
、最终一致性
、全链路标记
Apache Commons
、Google Guava
、HuTool
扩展。Dubbo
扩展点改造,轻量级实现组件的扩展。COLA
组件,在 COLA
原生的基础上优化,完善了 DDD
领域模型、轻量级状态机、业务扩展点等组件。多级缓存
、分布式锁
、分布式唯一ID
、数据去重
、事件审计
等场景的设计与实现。Mybatis
、Redis
、Flyway
、Liquibase
等组件。Spring Security OAuth2
、Jwt
、Shiro
等组件。RocketMQ
、Kafka
、Netty
、XxlJob
等组件。Spring Boot
组件,根据实际的使用场景进行扩展。Spring Boot
组件自动装配,对官方原生组件无感知增强,并扩充未集成的组件。Spring Boot
组件测试,对官方原生组件进行扩展。Spring Cloud
组件,扩展了 Nacos
、Sentinel
、Zookeeper
等组件。Spring Cloud
组件自动装配,基于 Spring Cloud Starters
扩展。Spring
测试组件,扩展了 TestContainer
测试容器和嵌入式的中间件,单元测试。由于 Spring Boot 2.4.x
和 Spring Boot 3.0.x
在架构层面有很大的变更,因此我们采取跟 Spring Boot 版本号一致的分支:
Spring Boot 2.4.x
,最低支持 JDK 1.8。Spring Boot 2.7.x
,最低支持 JDK 11。Spring Boot 3.0.x
,最低支持 JDK 17。本项目默认使用 Maven 来构建,最快的使用方式是 git clone
到本地,然后执行以下命令:
./mvnw install -T 4C
执行完毕后,项目将被安装到本地 Maven 仓库。
首先,在您的项目 pom.xml
的 parent
节点引用 eden-parent
父工程。
<parent>
<groupId>io.github.shiyindaxiaojie</groupId>
<artifactId>eden-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath/>
</parent>
然后,从 eden-spring-boot-starters
或者 eden-spring-cloud-starters
搜索您需要集成的组件。例如,集成
CAT,您可以在 dependencies
节点中添加以下内容:
<dependencies>
<dependency>
<groupId>io.github.shiyindaxiaojie</groupId>
<artifactId>eden-mybatis-spring-boot-starter</artifactId>
</dependency>
</dependencies>
为了减少繁琐的依赖冲突解决工作,在第一步引入的
eden-parent
组件已经导入了常用的依赖,一般情况下,不需要填写版本号。
在您的项目配置文件如 application.yml
,开启相关配置,大多数组件以 xxx.enabled
属性项作为开关。
cat:
enabled: false # 默认关闭,请按需开启
trace-mode: true # 开启访问观测
support-out-trace-id: false # 允许异构子系统间透传链路ID
home: /tmp
servers: localhost # CAT 地址
tcp-port: 2280
http-port: 8080
业务代码无须改动,直接启动您的项目,简单发起HTTP请求和RPC调用,您会发现,我们已经自动帮您完成了 CAT 的埋点。
为了演示如何使用,我们提供了 3 种不同架构风格的 Demo
项目的版本号格式为 x.y.z
的形式,其中 x 的数值类型为数字,从 0 开始取值,且不限于 0~9 这个范围。项目处于孵化器阶段时,第一位版本号固定使用
0,即版本号为 0.x.x
的格式。
版本迭代规则:
请查阅 CHANGELOG.md