Я новичок в Akka и хочу создать распределенную службу с помощью Akka gRPC и сегментирования кластера, которая предоставляет клиентам услугу извлечения данных.
Итак, какой-то RequestActor
(может быть, вообще нет такого актера с gRPC, я не уверен) получает запрос клиента и перенаправляет его другому ProcessingActor
через shardRegion
для получения результата запроса.
Для этого есть два варианта:
tell
шаблонshardRegion ! Request(raw_request, localRequestActor)
ask
шаблонshardRegion ? raw_request pipeTo(localRequestActor)
Мои вопросы,
Поскольку все запросы будут пересылаться через
shardRegion
актера, поэтому, если я использую шаблонask
, не будет ли узким местом в производительностиshardRegion
актер? ИлиshardRegion
просто создает внутреннего актера для обработки обещаний на будущее, и как только запрос будет перенаправлен,shardRegion
больше не будет участвовать?Я знаю, что
ask
влияет на производительность/ресурсы по сравнению сtell
; с другой стороны,ask
предоставляет механизм тайм-аута, и нам придется сделать это самостоятельно с помощьюtell
. Поскольку это взаимодействие типа «запрос-ответ», что лучше выбрать в моем случае?
Спасибо!