Search Results for

    Show / Hide Table of Contents

    负载均衡

    从广义上讲,负载平衡是Orleans运行时的支柱之一。Orleans运行时会尝试使所有内容保持平衡,因为平衡可以最大程度地利用资源并避免出现热点,从而提高性能,并有助于提高弹性。Orleans的负载平衡适用于多个地方。以下是运行时进行平衡的地方的非详尽列表:

    1. 默认的演员存储策略是随机的-新的激活随机分布在各个孤岛中。这样可以在大多数情况下平衡存储并防止出现热点。

    2. 更高级ActivationCountPlacement尝试使所有silos上的激活次数相等,从而导致各个silos上的激活分布更加均匀。这对于弹性尤其重要。

    3. Grains目录服务在分布式哈希表的顶部构建,该哈希表本质上是平衡的。目录服务将Grains映射到激活,每个silos都拥有全局映射表的一部分,并且该表以平衡的方式在所有silos中进行全局分区。为此,我们将一致的哈希与虚拟存储桶一起使用。

    4. 客户端连接到所有网关并平衡地分散他们的要求。

    5. 提醒服务是分布式分区运行时服务。就像粮仓目录中一样,哪个silos的分配负责服务哪个提醒,并通过一致的哈希在所有silos之间进行平衡。

    6. silos中对性能至关重要的组件进行了分区,并且它们之间的工作是本地平衡的。这样,孤岛运行时可以充分利用所有可用的CPU内核,而不会造成孤岛瓶颈。这适用于所有本地资源:将工作分配给线程,套接字,调度责任,队列等。

    7. StreamQueueBalance平衡了从持久化队列中跨集群中各个孤岛提取事件的责任。

    另请注意从广义上讲,平衡并不一定意味着失去局域性。一个可以保持平衡,并且仍然保持良好的位置。例如,当平衡意味着分片/分区时,您可以对某个逻辑任务进行分区,同时仍保持每个分区内的局部性。这适用于本地和分布式平衡。

    请参阅此演示文稿Orleans的平衡技术更多细节。

    • Improve this Doc
    In This Article
    Back to top Generated by DocFX