如何在 Akka.Net 中实现自定义路由

How to implement custom routing in Akka.Net

Akka.Net 提供了许多开箱即用的有用路由策略(我们目前使用最小的邮箱和一致的哈希),但是如果想要使用基于我们称之为 Worker Node Load 的策略来实现自定义路由器怎么办Index 会根据当前资源消耗在每个节点上单独计算。

我找不到关于此主题的文档或示例,因此非常感谢任何信息。 谢谢

您可以通过从基础 RoutingLogic class 派生来创建自己的路由策略:https://github.com/akkadotnet/akka.net/blob/614f1f0e824384f065e7b72e827c1ff937eafca5/src/core/Akka/Routing/Router.cs#L166

总体而言,您的 class 可能看起来有点像:

public class CustomRouter : RoutingLogic
{
    public override Routee Select(object message, Routee[] routees)
    {
        return routees.OrderBy(WorkerNodeLoadIndex).First();
    }

    private double WorkerNodeLoadIndex(Routee arg)
    {
        return 0.0; // put your real calculation here
    }
}