Динамическое изменение приоритета отдельных актеров - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь реализовать свой первый проект Akka. Net.

У меня есть несколько участников (около 10 000), которые обрабатывают прогнозы для системы поиска событий. Я смоделировал дизайн так, чтобы каждый актер соответствовал определенной проекции. Это связано с тем, что несколько сообщений, полученных для данной проекции, должны обрабатываться последовательно.

Кажется, это работает нормально, однако я ищу способ выбрать определенных участников, которые получат больше системных ресурсов, чтобы их работа могла иметь приоритет . Похоже, что вся документация, которую я прочитал, сосредоточена на приоритизации сообщений, получаемых актерами. Для меня это не работает, потому что каждое сообщение только может обрабатывать один актер. Моя проблема в том, что «n» участников могут обрабатывать работу, однако я не хочу, чтобы они имели равный доступ к ресурсам (например, CPU et c). Полагаю, это похоже на то, что я хочу, чтобы у определенных акторов был более высокий приоритет потока (я мог бы ошибиться в своем понимании).

Дополнительная сложность заключается в том, что каждый актер должен иметь возможность переключаться между Режимы 'high perf' и 'low perf' в зависимости от полученного сообщения.

Есть ли способ добиться этого?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 12 августа 2020

Обработка может быть решена с помощью маршрутизаторов, вы можете создать группу с несколькими участниками, которые обрабатывают все сообщения в почтовом ящике, и если вы хотите обрабатывать группу сообщений с высоким приоритетом, я рекомендую вам разделить этих участников на определенные c микросервис.

Для управления приоритетным сообщением вы можете комбинировать решение для очереди, такое как Rabbitmq, для определения приоритета сообщений и чтения их из очереди.

...