Отправка сплетни кластера Akka.net на консоль рабочей роли Azure
Я занимаюсь разработкой облачного сервиса Azure, включающего несколько рабочих ролей, которые образуют кластер akka.net. Как я могу получить сплетни кластера и другие сообщения в конечном итоге в окнах консоли эмулятора вычислений?
1 ответ
В данный момент я работаю над кластером Akka.NET, который будет размещен как облачные службы Azure и столкнулся с той же проблемой.
Самый быстрый способ, который я нашел для достижения этой цели, - написать адаптер для ведения журналов (хотя я все еще относительно новичок в 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" ]
Она не идеальна, но, как вы можете видеть, она работает достаточно хорошо, поэтому вам не хочется задуматься над тем, что такое система актеров: