akka 的集群访问方式
Posted vana
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了akka 的集群访问方式相关的知识,希望对你有一定的参考价值。
akka 中采用startProxy分区代理 访问 ,跟使用shardRegion 来访问的区别
这两种访问方式是不是重了呢。
而另外这是一个单例代理
protected fun startUniverseProxy(universeRole: UniverseRole)
val proxySettings = ClusterSingletonProxySettings.create(actorSystem).withRole(universeRole.clusterRole.name)
val actorRef: ActorRef = actorSystem.actorOf(ClusterSingletonProxy.props(universeRole.proxyPath, proxySettings))
universeProxies[universeRole] = actorRef
worldActor 中 又 创建了一个访问对象
/**
* Retrieve the actor reference of the [[ShardRegion]] actor responsible for the named entity type.
* The entity type must be registered with the [[#start]] or [[#startProxy]] method before it
* can be used here. Messages to the entity is always sent via the `ShardRegion`.
*/
就是只要
protected fun startUniverseCwarShardProxy()
ClusterSharding.get(actorSystem).startProxy(
GameWorldShard.universe_cwar.name, Optional.of(ClusterRole.universe_cwar.name),
UCWorldMessageExtractor()
)
.let logger.info("UniverseCwar shard proxy $it started.")
开始的方式, 就能以以下的方式获取到
ClusterSharding.get(context.system()).let
ucWorldShardProxy = it.shardRegion(GameWorldShard.universe_cwar.name)
以上是关于akka 的集群访问方式的主要内容,如果未能解决你的问题,请参考以下文章