Я работаю с akka уже 7-8 месяцев ежедневно. Когда я начинал, я работал над приложениями и замечал, что актеры будут использоваться в любом месте внутри системы акторов для связи между большинством объектов. Я сделал то же самое - раскрутил другого актера за х / у / з.
Мне кажется, что это может быть слишком неразборчиво, добавляя сложность там, где это не нужно - но я не могу найти никаких дискуссий о том, где должны использоваться акторы против простой синхронной или даже асинхронной логики через фьючерсы. Я начал обдумывать свою позицию после того, как мой коллега упомянул нечто подобное. Совсем недавно я реализовал несколько случаев, когда я размышлял над задачей, а затем избегал создания другого действующего лица, потому что я мог бы безопасно достичь того же результата в неизменной реализации - например, что-то вроде получения значений конфигурации из БД или файла где-то, куда вы обращаетесь очень редко и дождаться результата - это фактический вариант использования.
В частности, мне кажется, что в любом случае, когда вы играете с неизменным состоянием, акторы создают сложность и ограничивают пропускную способность - например, чистую функцию в объекте можно вызывать одновременно, без риска при любом уровне параллелизма, однако актер может обрабатывать только одно сообщение за раз. Альтернативное соображение заключается в том, что вы будете парковать поток, если вам нужно дождаться результата, если только вы не начнете использовать фьючерсы, но в тех случаях, когда вам не нужно беспокоиться об асинхронном обмене сообщениями или масштабировании, кажется, что использование актера может оказаться излишним.
Итак, мой вопрос - есть ли плохое время для использования актеров? Мне любопытно, как выглядит Эрланг, и ему бы очень хотелось, чтобы другие люди понимали. Или если есть какие-то принципы использования актера.
ask
актером и просто использованием равнины Future
.