浅析Java类隔离规避依赖冲突的实现原理|得物技术
Source :
mp.weixin.qq.com
Author :
羊羽
随着业务规模增长、业务逻辑演进,项目工程的依赖树(二方依赖、三方依赖)变得愈发复杂。随之而来的便是【依赖冲突】问题。 当几个软件包对相同的共享包或库有依赖性,但它们依赖于不同的、不兼容的共享包版本时,就会出现依赖性问题。如果共享包或库只能安装一个版本,用户可能需要通过获得较新或较旧版本的依赖包来解决这个问题。反过来,这可能会破坏其他的依赖关系。 【依赖冲突】问题是软件工程广泛存在的问题,换句话说,各语言生态如Python、Golang、Nodejs、Java等都存在类似问题。但是由于Java语言的特殊机制,【依赖冲突】问题在Java中似乎有完美的解决方案,那就是【类隔离容器】。 从2000年的开源规范OSGI,到阿里巴巴自研Pandora容器,再到蚂蚁金服开源sofa-ark,业界在【类隔离容器】这个领域的实践方兴未艾。那到底什么是类隔离容器?怎么实现类隔离容器?为什么它听起来很完美但是却没有成为主流实践?