В чем разница между System Actor и User Actor в акка? - PullRequest
1 голос
/ 08 мая 2020

Итак, я могу создать множество актеров, используя систему актеров. И я также могу создать множество актеров, используя SpawnProtocol. В чем разница между этими двумя типами актеров. Я могу думать об одном - мы получаем возможности контроля для всех участников-пользователей. Но есть ли другая разница? Один дороже другого?

enter image description here

1 Ответ

2 голосов
/ 11 мая 2020

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

Это становится особенно важным в Akka Typed, поскольку пользователь предоставляет опекуна пользователя, и у расширения нет возможности попросить его создать дочерний элемент с произвольным поведением. Было бы довольно неудобно, если бы расширение требовало, чтобы пользователь всегда использовал SpawnProtocol в качестве опекуна пользователя.

Внутренне часть потока событий, инфраструктура TCP / UDP / DNS, основные демоны кластера, некоторые кластерных утилит, а также акторов порождения Akka Streams в пространстве имен system.

...