中台架构利器SPI
目录
定义
SPI(Service Provider Interface):由中台提供系统定义Interface,基于能力能支持的扩展逻辑定义好接口。由业务BP实现Interface,进行个性化扩展业务逻辑计算。SPI的形式对修改封闭、对扩展开放,业务逻辑相对可控。
SPI设计要点
热部署和动态加载技术可以减少停机时间
这对生产环境尤为重要。类加载器隔离、OSGi框架或者JVM的动态代理技术都可能被用到。同时,日志和监控的独立处理可以帮助排查问题,而无需影响整个中台系统。
远程扩展点加载
SPI的要求,有三种形式:1、本地扩展点加载。2、本地扩展点动态加载。3、远程扩展点加载
插件生态建设,设计插件市场或仓库,方便开发者发布和获取插件。
插件版本管理和依赖冲突解决机制也是必须考虑的,避免插件之间的兼容性问题。
插件安全管理
沙箱机制和权限校验必不可少。
运行时监控和熔断机制可以防止插件故障影响整个系统。
SPI隔离,通过租户ID或标签或业务身份限制钩子的可见性,避免跨业务线污染:
开源SPI框架
1 https://www.ryu.xin/category/lattice/
2 cola SPI
参考资料
https://developer.jdcloud.com/article/2649
https://www.ryu.xin/2021/08/13/tmf2-design-summary/
COLA 扩展点设计
https://blog.csdn.net/yangyanping20108/article/details/134968496
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!