Orleans 2.0 官方文档 —— 6.3.3 部署 -> Grain版本管理 -> 兼容的grain

兼容的grain

当现有的grain激活体即将处理请求时,运行时将检查请求中的版本和grain的实际版本是否兼容。 Orleans不会在运行时推断要使用哪个策略确定两个版本是否兼容的默认行为,是由GrainVersioningOptions.CompatibilityStrategy确定的。

向后兼容(默认)

定义

在以下情况下,grain接口版本Vn可以向后兼容Vm:

  • 接口名称未更改(或重写的类型代码)
  • Vm版本中存在的所有pubic方法都在Vn版本中。重要的是,从Vm继承的方法的签名不会被修改:因为Orleans使用内部的内置序列化器,修改/重命名字段(甚至是privaet)使序列化中断。

与Vm相比,Vn可以添加方法,因此Vm与Vn不兼容。

如果在集群中,给定的接口有两个版本,V1和V2,并且V2向后兼容V1:

  • 如果当前激活体是V2,并且请求的版本是V1,则当前激活将能够正常处理请求
  • 如果当前激活体为V1且请求的版本为V2,则将停用当前激活体,并将创建与V2兼容的新激活(请参阅版本选择器策略)。

完全兼容

定义

在以下情况下,grain接口版本Vn可与Vm完全兼容:

  • Vn向后兼容Vm
  • 在Vn版本中没有添加公共方法

如果Vn与Vm完全兼容,则Vm也与Vn完全兼容。

如果在集群中,给定的接口有两个版本,V1和V2,且V2与V1完全兼容:

  • 如果当前激活体是V2并且请求的版本是V1,则当前激活体将能够正常处理请求
  • 如果当前激活体是V1并且请求的版本是V2,则当前激活体也将能够正常处理请求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值