-
快速开始
稳定版
Maven Release
<repositories> <repository> <id>aliyun-maven</id> <name>aliyun maven</name> <url>https://maven.aliyun.com/repository/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories>
<dependencyManagement> <dependencies> <dependency> <groupId>com.github.liaomengge</groupId> <artifactId>base-framework-bom</artifactId> <version>${latest-release-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Gradle Release
repositories { mavenLocal() maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/spring' } maven { url 'https://maven.aliyun.com/repository/spring-plugin' } mavenCentral() }
dependencyManagement { imports { mavenBom "com.github.liaomengge:base-framework-bom:${latest-release-version}" } }
快照版
Maven Snapshot
<repositories> <repository> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories>
<dependencyManagement> <dependencies> <dependency> <groupId>com.github.liaomengge</groupId> <artifactId>base-framework-bom</artifactId> <version>${latest-snapshot-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Gradle Snapshot
repositories { mavenLocal() maven { url 'https://maven.aliyun.com/repository/public' } maven { url 'https://maven.aliyun.com/repository/spring' } maven { url 'https://maven.aliyun.com/repository/spring-plugin' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } mavenCentral() }
dependencyManagement { imports { mavenBom "com.github.liaomengge:base-framework-bom:${latest-snapshot-version}" } }
-
模块说明
**base** ├── base-common-cache -- 一二级缓存(维护) ├── base-common-dayu -- redis熔断降级(维护) ├── base-common-middleware -- activemq/rabbitmq封装(维护) ├── base-common-starter -- 常用starter(持续开发)⭐ ├── base-common-utils -- 常用工具集(持续开发)⭐ ├── base-dubbo-framework -- 项目dubbo简易封装(维护) ├── base-spring-cloud-framework -- 项目springcloud封装(持续开发)⭐ └── base-platform-bom -- sb/sc/sca等依赖bom(持续开发)⭐ ├── base-framework-bom -- base-framework依赖bom(持续开发)⭐
**注:**目前主要持续开发的是
base-common-utils,base-common-starter,base-spring-cloud-framework,base-platform-bom
等分支,其他moudle已经很久没有迭代开发了 ~~~-
base-common-utils
基础util包,提供项目中常使用的工具集
-
base-common-starter
基础starter包,提供项目常用的starter,便于快速使用(以只列出部分功能,更多使用参考源码,后续会附上每个的case案例)
- base-apollo-spring-boot-starter
- 支持EnvironmentChangeEvent,@RefreshScope实时刷新
- 支持部分@ConditionalOnProperty@Bean指定Bean动态创建/销毁
- base-async-spring-boot-starter
- 支持@Async异步异常日志
- 结合base-thread-pool-spring-boot-starter,支持注解指定线程池,统一管理线程池
- base-base-mybatis-spring-boot-starter
- 支持druid和hikari数据源
- 支持sqlId流控以及sql日志打印
- 支持主从切换以及自定义mapper包切面处理
- base-cache-spring-boot-starter
- 基础自定义一二级缓存starter
- base-dayu-spring-boot-starter
- 支持guava,sentinel,自定义限流
- 支持自定义sentinel数据源
- base-design-patterns-spring-boot-starter
- 部分常见设计模式
- base-endpoint-spring-boot-starter
- 扩展info端点
- base-eureka-spring-boot-starter
- 支持eureka主从开关以及新增元数据
- 支持eureka拉入拉出
- base-fastjson-spring-boot-starter
- fastjson封装
- base-feign-spring-boot-starter
- 支持hystrix和sentinel注解fallback(默认:打印fallback日志,可以定制返回结果集)
- 支持feign日志,header传递,以及封装okhttp等
- 新增@FeignClient缓存,便于动态新增Eager加载
- base-framework-spring-boot-starter
- 封装framework常用的使用
- base-graceful-spring-boot-starter
- 支持tomcat和undretow优雅停机(2.3.0之前)
- base-health-check-spring-boot-starter
- 新增常用的健康检查
- base-influx-spring-boot-starter
- 封装influx使用
- base-jackson-spring-boot-starter
- 封装统一jackson
- base-logger-spring-boot-starter
- 支持动态变更日志级别
- 集成log4j2
- base-mail-spring-boot-starter
- 支持常用邮件处理
- base-metric-spring-boot-starter
- 常用资源池监控metric
- base-mongo-spring-boot-starter
- 支持mongo封装
- base-mq-lock-spring-boot-starter & base-mq-spring-boot-starter
- activemq和rabbitmq封装
- base-multi-mybatis-spring-boot-starter
- 支持base-base-mybatis-spring-boot-starter以及多数据源
- base-multi-shardingsphere-spring-boot-starter
- 支持shardingsphere多数据源
- base-mybatis-spring-boot-starter
- 支持mybatis主从数据源
- base-nacos-spring-boot-starter
- 支持nacos主从开关以及新增元数据
- 支持nacos拉入拉出
- base-quartz-lock-spring-boot-starter
- 分布式quartz lock starter
- base-quartz-spring-boot-starter
- 基于jdk quartz封装(yml统一管理配置使用)
- base-redis-spring-boot-starter
- jedis,spring-data,redission等封装
- base-rest-template-spring-boot-starter
- rest template封装使用
- base-retrofit-spring-boot-starter
- retrofit封装使用
- base-ribbon-spring-boot-starter
- 自动初始化加载@FeignClient下的服务以及设置默认的ribbon重试策略
- 集成ribbon以及spring loadbalance
- base-sentinel-spring-boot-starter
- sentinel cluster封装(配合apollo sentinel整改)
- base-swagger-spring-boot-starter
- 集成knife4j,含授权
- base-thread-pool-spring-boot-starter
- 使用properties/yml统一管理线程池,避免项目各地方线程池乱用
- 支持通过apollo动态变更线程池
- base-webflux-spring-boot-starter
- WebExchange上下文传递以及WebClient封装
- base-xxl-job-spring-boot-starter
- xxl-job starter服务
- base-apollo-spring-boot-starter
-
base-spring-cloud-framework
基础springboot包,快速搭建springboot项目
-
base-platform-bom
基础bom包,统一管理项目依赖Jar
-
base-skeleton-initializr(未开源)
base脚手架,快速搭建项目(分层模式,DDD)
-
-
迭代升级
base-* 2020.x.x 支持(同步更新springcloud 2020.x.x)
-
规划base-plus-*(暂不开源)
蓝绿灰度
- 可以参考nepxion,见总结Nepxion整理
无损流量
- 无损上下线,provider上下线,及时通知对应consumer刷新调用实例
预热,动态权重
- 依据provider实例运行状态,打分决策(实例启动时间;cpu、内存、磁盘等负载;线程池情况等),分配不同的权重
......
-
待开源项目
-
附