如何结合 Service Fabric Remoting 进行分区

How to do partitioning in combination with Service Fabric Remoting

比方说,我正在使用 Azure Service Fabric Stateful Service 和 RemotingV2,我想存储用户 phone 号码(这是我的服务所做的唯一事情)。

Task StoreNumber(string username, string phoneNumber);
Task<string> GetNumber(string username);

我想使用用户名进行分区

这样做的优雅方法是什么?

我可以从方法中删除 username 参数并以某种方式从请求中获取它吗?

有没有更好的方法?

谢谢

这是与之配套的 video that covers this subject and here's a working code sample

  • 使用(正确的,例如 FNV)散列算法获取 username 的散列,使用 long 结果通过其键确定 Int64RangePartition
  • 使用为您进行哈希处理的网关(例如 api 管理或自定义无状态服务)并转发呼叫
  • 您可以使用 customer headers 来传递 username。 (样本没有)