问题一:插件预加载与编排的流程是怎样的?
插件预加载与编排的流程是怎样的?
参考回答:
首先,创建配置监听器,这是通用逻辑,无需额外代码,diamond会进行统一监听,并生成一个ConfigHolder。其次,进行插件Handler构建,这也是通用逻辑,无需额外代码,MethodAspectHandlerRegistry.modifyHandler会将插件Handler插入到对应的链表位置中,这个过程中会涉及到精确切点和模糊切点。最后,进行方案Executor构建,这也是通用逻辑,无需额外代码。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620371
问题二:配置的若干场景下若干方案的变化是如何被处理的?
配置的若干场景下若干方案的变化是如何被处理的?
参考回答:
配置的若干场景下若干方案的变化,会由女娲的配置模块进行监听处理。具体过程包括创建配置监听器来监听diamond中的配置变化,并生成ConfigHolder来保存配置信息。然后,通过插件Handler构建和方案Executor构建来处理和编排这些变化。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620372
问题三:代理处理流程(AOP)有没有什么示例图?
代理处理流程(AOP)有没有什么示例图?
参考回答:
看看这个呢?应该是能帮到你的
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620373
问题四:代理处理流程(AOP)有没有具体说明?
代理处理流程(AOP)有没有具体说明?
参考回答:
1. 流量入口:ConfigurationAspect 初始化(Spring Aspect)
女娲统一提供ConfigurationAspect进行流量拦截,在女娲引入时,进行手动注册;
2. 代理执行:ConfigurationAspect调用
调用插件处理链进行业务方案执行,即调用MethodAspectHandlerRegistry.getHandler(methodReference);找到插件处理链;
3. 插件执行:NvWaPlugin;
4. 方案Executor执行:比如GraySolutionExecutor;
5. 元件Executor执行:比如LimitAndRateExecutor。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/620374
问题五:泛化调用流程(SPI流程)有没有具体说明?
泛化调用流程(SPI流程)有没有具体说明?
参考回答:
面向控制台使用的SPI服务:只需要控制台应用初始化才需要配置(com.alsc.content.sdk.nvwa.service.NvWaOpsSpiService)
面向切点的泛化调用SPI服务:通过泛化调用,可以任何一个切到的内部方法进行开箱供外部调用:(com.alsc.content.sdk.outer.user.service.**)具体实现略
关于本问题的更多回答可点击原文查看: