【问题标题】:Service Fabric Reliable Services: Communication and Partitioning essentialsService Fabric 可靠服务:通信和分区要点
【发布时间】:2016-02-19 09:19:54
【问题描述】:

在发现 SF Reliable Services 时,我想确保以下基本陈述是正确的。

  1. Reliable Services 默认通信栈 (DefaultStack) 和 Reliable Actors 通信栈(使用 ServiceProxy/ActorProxy)只能用于 SF Cluster 内部的通信。外部客户必须使用 WebAPI/WCF 堆栈。

  2. ServicePartitionResolver、CommunicationClientFactory、ServicePartitionClient 是已经在 DefaultStack 中实现的东西。如果我只使用 DefaultStack 就不用担心了。

  3. 一些有状态的服务有不止一个分区,我想发布一个项目来处理它。 SF 不负责通过发布客户来决定应该使用哪个分区。我需要手动实现解析分区键或名称的算法,并在 ServiceProxy 构造函数中使用它(用于 DefaultStack)。

【问题讨论】:

    标签: azure service communication partitioning azure-service-fabric


    【解决方案1】:

    你在所有这些点上都是正确的,

    1. 如果要在 Service Fabric 外部进行通信,则需要使用 OwinCommunicationListener 之类的东西(请参阅 here)。
    2. 如果您想插入自己的通信堆栈,则只需实现这些。
    3. 是的,您需要在创建 ServiceProxy 时定义分区键。

    【讨论】:

    • 你可能知道这个问题的答案。有没有办法自动获取分区键?我希望将此服务的调用分发到不同分区中的不同实例。我不想知道存在多少服务。
    • 这真的取决于你的分区策略是什么。您如何拆分数据以及哪些组件知道如何创建分区键?该组件可以是任何东西,从扩展方法到将请求路由到正确服务分区的专用无状态服务。
    • 我想我还没有考虑到所有这些。我还没有弄清楚不同服务的分区应该如何关联。现在我只有一个 StatefulActor,它试图调用 StatelessService 来对工作项进行排队并对其进行异步处理。
    猜你喜欢
    • 2016-08-30
    • 2016-07-26
    • 2016-02-20
    • 2016-02-17
    • 2017-12-01
    • 2017-10-30
    • 2016-12-13
    • 2019-06-21
    • 2021-03-01
    相关资源
    最近更新 更多