版本选择器策略
当集群中存在同一个grain接口的多个版本,并且必须创建新的激活体时,将根据GrainVersioningOptions.DefaultVersionSelectorStrategy
中定义的策略,选择兼容版本。
开箱即用的Orleans,支持以下策略:
所有兼容版本(默认)
使用此策略,将在所有兼容的版本中,随机选择新激活体的版本。
例如,如果我们给定的grain接口有两个版本,V1和V2:
- V2向后兼容V1
- 在集群中有2个支持V2的silo,8个支持V1
- 该请求来自V1客户端/silo
在这种情况下,新激活体有20%的机会是V2,80%的机会是V1。
最新版本
使用此策略,新激活体的版本将始终是最新的兼容版本。
例如,如果给定grain接口有两个版本,V1和V2(V2向后或完全与V1兼容),那么所有新的激活体将是V2。
最低版本
使用此策略,新激活的版本将始终是请求的或最小兼容版本。
例如,如果给定grain接口的2个版本v2、v3完全兼容:
- 如果请求是从V1客户端/silo发出的,则新激活体将是V2
- 如果请求是从V3客户端/silo发出的,则新激活也将是V2