引入 sentinel 导致多重 slf4j 绑定问题
引入 sentinel 库可能会导致“多重 slf4j 绑定”错误。即使排除了 slf4j 的依赖关系,错误可能仍然存在。
这种现象是由 sentinel 库中同时存在 ch.qos.logback和 org.slf4j 版本所引起的。当项目中已经存在其他slf4j绑定(例如logback-classic)时,就会导致冲突。
此问题可以通过强制排除logback dependencies来解决。以下示例显示如何对 spring boot 应用程序执行此操作:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <version>2.2.9.RELEASE</version> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency>
上述排除项将强制 maven 在 sentinel 依赖项的范围内排除 logback-classic 依赖项。通过这样做,可以防止出现“多重 slf4j 绑定”错误,让 sentinel 库可以正常工作。