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

时间:2016-09-23 07:06:20

标签: c# akka.net

Akka.Net提供了许多开箱即用的有用路由策略(我们目前使用最小的邮箱和一致的散列),但是如果想要实现基于让我们称之为工作节点负载的策略的自定义路由器呢?将根据当前资源消耗在每个节点上逐步计算索引。

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

1 个答案:

答案 0 :(得分:0)

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

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

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
    }
}