前提
- 阿里巴巴限流 Sentinel 源码:GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)
- 如果项目中使用了 Sentinel 限流,需要从 GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件) 下载已经编译好的二进制 jar
包文件,以1.8.9版本为例,大小为21M - 如果要将使用的二进制安装包储存起来代价有点高(近
21M的大小) - 如果能在项目中直接使用几个 依赖 和 java源文件 直接启动项目是最好的。
- 分析
1.8.9版本的项目可知,
sentinel-dashboard 源码模块
大小仍然有3.2M,并且文件内容较多,大概有200+个文件,如果遇见版本升级,代码变动较大,不是最优解
- 分析
- 如果能将 sentinel-dashboard 源码模块 发布到 Maven
中央仓库,直接引入该模块最方便(项目中的代码最小,并且不会影响编译速度)- Maven 项目打包类型大概分为两类:
- 作为依赖的 jar 包(仅包含当前项目的代码,无其他直接、间接依赖,大小通常在
1M左右,源码编译完成在根目录下) - 作为 Spring Boot 打包(不仅包含当前项目的代码,还包含所使用的直接、间接依赖,大小通常最小有
40M+,源码编译完成在
BOOT-INF/classes文件夹中)
- 作为依赖的 jar 包(仅包含当前项目的代码,无其他直接、间接依赖,大小通常在
- Maven 项目打包类型大概分为两类:
直接使用 Maven 依赖的示例
- spring-cloud-alibaba-example/sentinel-dashboard-1.x at main · xuxiaowei-com-cn/spring-cloud-alibaba-example · GitHub
- 直接覆盖需要需要的源代码即可(理论支持:
CLASSPATH=.;xxx) - 如果要使用不同的 sentinel-dashboard 版本,
需要使用对应版本的源码的配置进行覆盖,防止不同版本之间存在的差异导致运行异常
- 直接覆盖需要需要的源代码即可(理论支持:
已发布的 sentinel-dashboard 版本
- io.xuxiaowei.sentinel:sentinel-dashboard:1.7.0
- io.xuxiaowei.sentinel:sentinel-dashboard:1.7.1
- io.xuxiaowei.sentinel:sentinel-dashboard:1.7.2
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.0
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.1
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.2
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.3
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.4
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.5
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.6
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.7
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.8
- io.xuxiaowei.sentinel:sentinel-dashboard:1.8.9
