alibaba/tac

数据源多个版本的冲突问题 & jar使用框架引起的问题

destinym opened this issue · 3 comments

问题一:能否兼容数据源的多个版本?
目前存在这样一个问题:
jar-A依赖于数据源db0.3版本。
jab-B依赖于数据源db0.4版本。

从db0.3--0.4的升级过程中。
某些接口实现发生了变化,或者返回值发生变化。

extend-libs放入db0.3和db0.4两个版本。(实际好像是有一个会生效)

测试中发现,jar-A和jar-B中不能指定到具体版本。只有一个结果会正确。

问题二:
jar使用spring boot或者 guava等来进行注入操作, 我们的container如何进行解析?

问题一 jar的升级升级过程中应该保持接口兼容,如果不兼容那么老的代码依赖了0.3 引入了不兼容的0.4会导致老代码无法运行成功。 如果非要解可以指定不同的微服务加载不同文件夹下单jar包,参考tomcat的类隔离机制,但是这会导致tac变得更加复杂。

问题二 没有明白,可否描述详细一点?

问题一,对兼容性的要求要比较高。最好是后面版本兼容前面版本,容器只是用最新版本。
问题二,举个例子,我在jar包中使用spring boot框架,生成一个@bean, 通过@Autowired注入,代码本身可以运行,但是jar包放到container里面,肯定是没法运行的。
这个时候我该怎么处理?第一是container里面增加configure的路径,然后重启, 第二,修改container的spring框架,能够动态加载jar包中的bean。 不知道我这么理解正确么?

可以的