我想弄清楚如何生成指向我当前正在执行的服务的ServiceProxy
。我需要传达有关它的信息,以便其他服务可以回调到这个特定的实例:因为它是有状态的。
ServiceProxy
似乎通过分区键来解析。但是,我不知道如何获取当前正在执行的服务的分区键。我可以获得分区Guid。但是,ServiceProxy不能与之一起使用。
示例用例:我有StatefulService
调用外部HTTP API。它会向此API发布消息,这会导致API在一段时间后回调到我的基础架构中。我构建的HTTP端点需要解析原始StatefulService
,以便将响应路由回来。
答案 0 :(得分:2)
您可以获取分区的密钥范围,并将低密钥值发送到外部HTTP API。当外部API需要解析回调的分区时,它可以使用低键值作为分区键,这可以保证它将落在正确的分区范围内:
Int64RangePartitionInformation partitionInfo = this.ServicePartition.PartitionInfo as Int64RangePartitionInformation;
long lowKey = partitionInfo.LowKey;