2017-02-28 40 views
1

我試圖通過創建simple project來設置akka.net集羣分片。Akka.net集羣分片:無法註冊協調器

項目佈局:

演員 - 類庫,它定義了一個演員和消息。由其他項目引用

入站 - 啓動ShardedRegion並且是參與集羣分片的唯一節點。而且應該是主持協調員的人。

MessageProducer - 將只承載shardedregion代理將消息發送到ProcessorActor。

燈塔 - 種節點

Uploaded images表明,協調單身沒有初始化的消息通過sharedregion代理髮送不傳遞。

基於由petabridge博客文章,petabridge.com/blog/cluster-sharding-technical-overview-akkadotnet/,我已經排除燈塔,通過設置akka.cluster.sharding.role,從參與集羣分片以便不在其上創建協調器。

不知道我錯過了什麼讓它工作。

+0

不能幫助自己,但你可以通過禮貌地進入https://gitter.im/akkadotnet/akka.net來加快回答。 – mwardm

+0

@mwardm感謝您的建議。現在就試試。 – technologyblogger

回答

1

這已經回答了小膠質,但這裏的TL;博士:

  1. 碎片區域代理需要共享一個相應的碎片區域相同的作用。否則代理可能無法找到分片協調器,因此無法找到分片的初始位置,它想要發送消息到。
  2. IMessageExtractor.GetMessage方法用於提取實際消息,即要發送給分片演員。在示例中,消息提取器用於從包封消息中提取字符串屬性,但接收者參與者爲信封設置了Receive處理程序,而不是字符串。