Provider Policy与Consumer Policy在bnd中的区别

Posted Yuyu.Racaud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Provider Policy与Consumer Policy在bnd中的区别相关的知识,希望对你有一定的参考价值。

首先需要了解的是bnd的相关知识:

1. API(也就是接口),

2. API Provider(接口的实现)

3. API Consumer( 接口的使用者)

 

 OSGi中的一个版本有4个部分:
  major        1
  minor        1.1
  micro        1.1.1
  qualifier    1.1.1.qualifier

  主版本 1
  次版本 1.1
  微版本 1.1.1
  限定符 1.1.1.qualifier

 主版本           破坏前后兼容性变化
  次版本         向后兼容性变化
  微版本           bug的修复(非API变化)
  限定符        新的构建

Provider Policy其实就是接口实现的版本控制策略,API Provider需要导入API所在的包,那么它的版本变化是随着API所在包的次版本而变化的,例如如果API中添加一个新的方法(次版本发生变化),那么API Provider必须实现这个方法,要不然以后新的客户端调用这个方法时候,就没有实现。

Consumer Policy就是接口调用者的版本控制策略, Consumer Policy也需要导入API所在的包,它的版本变化是随着API所在包的主版本而变化的,因为即使API中添加了一个新方法,它也用不上,编译中也不会出现错误。但是如果API中删除一个方法(主版本发生变化),它就要发生变化了,因为它原来调用的方法可能已经被删除了,编译也就不能通过了。

以上,终于把这个以前困扰自己的问题解决了。

附上官方文档链接:http://bnd.bndtools.org/chapters/170-versioning.html

以上是关于Provider Policy与Consumer Policy在bnd中的区别的主要内容,如果未能解决你的问题,请参考以下文章

使用React Context进行状态管理(五)Provider与Consumer匹配

如何查看Zookeeper下Dubbo的Provider与Consumer信息

dubbo的provider和consumer到底怎么区分

Dubbo——Registry服务注册

React中的connect使用(Provider+Consumer例子 以及 contextType+this.context例子)

ActiveMQ(20):Consumer高级特性之重新投递(Redelivery Policy)