我是 Akka 的新手,我想通过 Akka gRPC 和集群分片创建一个分布式服务,为客户端提供数据检索服务。
所以有些人RequestActor(我不确定,gRPC 可能根本没有这样的参与者)接收客户端请求,并将其转发给另一个ProcessingActorbyshardRegion以获取查询结果。
对此有两种选择:
tell图案
shardRegion ! Request(raw_request, localRequestActor)ask图案
shardRegion ? raw_request pipeTo(localRequestActor)
我的问题是,
由于所有请求都将通过
shardRegionactor转发,所以如果我使用该ask模式,shardRegionactor会成为性能瓶颈吗?或者shardRegion只是创建一个内部actor来处理future-promise的东西,一旦请求被转发,shardRegion就不再涉及?我知道与;
ask相比有一些性能/资源影响。tell另一方面,ask提供了超时机制,我们必须自己用tell. 由于这是一个请求-响应交互,在我的情况下哪个是更好的选择?
谢谢!