-
Notifications
You must be signed in to change notification settings - Fork 8.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spi重复初始化资源问题 #3376
Comments
应用服务 Sentinel文件路径: Agent Sentinel 文件路径: |
初步看起来原因是 JVM 中存在两份 Sentinel ,我理解这是不太合理的,即便 spi 这边不抛出异常,后续功能也是未定义的可能存在很多问题,最好通过 Agent 来剔除应用服务中的依赖,使得JVM中只有一份 Sentinel。 |
SpiLoader中的异常实际是防止重复初始化,我们只需要保证初始化一次就好。因为如果不在agent中依赖sentinel,那么就无法把通用限流功能下沉。比如根据CPU或内存进行限流 |
可以看看这个pr,#3377 |
@LearningGp @ZShUn 为避免多个SPI实现冲突问题,当时考虑的是 在工作中的项目也有使用到,因为项目里Sentinel依赖是唯一的,也没有使用agent,线上一直稳定运行没有遇到这个问题。 抱歉确实没想到有项目里存在多个Sentinel包的情况,钉钉群里看到@ZShUn反馈这个场景,在#3377 对此进行修复。
赞同该思路; 注:以前是通过 maven构建项目可使用 |
需求:
通过Agent下沉通用限流逻辑
问题复现步骤:
Agent中依赖sentinel,通过埋点实现通用资源限流,然后在微服务中继续依赖sentinel。当sentinel spi初始化时会加载出来两个文件路径,然后重复加载出现异常
agent中依赖:
微服务中依赖:
The text was updated successfully, but these errors were encountered: