2015-11-30 7 views
1

Я разрабатываю облачную службу Azure, включающую в себя несколько рабочих ролей, которые образуют кластер akka.net. Как добиться того, чтобы сплетни кластера и другие сообщения попадали в окна консоли эмулятора эмулятора?Отправка кластерных сплетен Akka.net на консоль ролей работников Azure

ответ

4

На данный момент я работаю над кластером Akka.NET, который будет размещен как Azure Cloud Services и столкнулся с той же проблемой.

Самый быстрый способ, который я нашел для этого, - написать регистрационный адаптер (хотя я по-прежнему относительно новичок в Akka.NET, поэтому возьмите этот совет с щепоткой соли). Вот основные один я использую сейчас:

public class ComputeEmulatorConsoleLogger : ReceiveActor 
{ 
    public ComputeEmulatorConsoleLogger() 
    { 
     Receive<InitializeLogger>(_ => 
     { 
      Trace.WriteLine("Compute emulator console logger started."); 
      Sender.Tell(new LoggerInitialized()); 
     }); 

     Receive<LogEvent>(ev => 
     { 
      Trace.WriteLine(ev.ToString()); 
     }); 
    } 
} 

А в разделе конфигурации akka HOCON добавить пути класса и имя сборки, например:

loggers = [ "WorkerRole2.ComputeEmulatorConsoleLogger,WorkerRole2" ] 

Это не идеально, но, как вы можете увидеть это работает достаточно хорошо, так что вы не вытягивать ваши волосы интересно, что система актер до:

Screenshot

+0

Спасибо, отлично работает. – Landrew

+0

@ Landrew Рад помочь! Кроме того, я заметил, что ваш оригинальный вопрос был помечен как 'akka' (вместо' akka.net'), что означает, что он, вероятно, не получит воздействия, которое вы надеялись на сообщество. Я только наткнулся на него, потому что я подписался на тег 'akka.net-cluster'! – easuter

+0

Правильно, у меня будет исправлен тег. – Landrew