簡體   English   中英

Akka 集群分片 - 實體到 Actor 的通信

[英]Akka Cluster Sharding - Entity to Actor communication

我在將我的應用程序重寫為 Akka Cluster Sharding 時遇到問題。 我有一個分片實體,我們稱它為A ,每個節點上有一堆本地演員,我們稱其中一個為B 現在我發送一條包含 (String, ActorRef[B]) 的消息B -> A並且我想使用上一條消息中提供的 ref 來響應A -> B

一方面,文檔表明它應該可以工作https://doc.akka.io/docs/akka/current/typed/cluster-sharding.html#basic-example

但據我了解, A應該不可能在集群中找到演員B ,因為它不是 entityID。

它是如何工作的? 我是否也必須使B成為實體?

ActorRef是位置透明的:它包含將消息路由到不同ActorSystem中的參與者所需的信息(通常 1:1 映射到集群節點)。 如果你有一個ActorRef的 ActorRef,無論你在集群中的哪個位置,你都可以向它發送消息。

那么,當您始終可以跨集群發送消息時,為什么還要進行集群分片呢?

集群分片允許實體獨立於任何參與者的生命周期進行尋址:實體的化身作為參與者運行,分片管理生成參與者以按需充當化身,在給定時間將實體限制為最多一個化身,以及保留將實體移動到不同節點上的化身的權利(通常是為了響應集群成員資格的變化)。 如果您不需要特定類型的參與者的這些方面,則無需將其設為分片實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM