akka/akka-core

Clarification for typed GroupRouter comment on sending messages to unreachable cluster nodes

開放

#29,389 建立於 2020年7月16日

 (2 則留言) (0 個反應) (0 位負責人)Scala (3,547 個分叉)batch import
1 - triagedhelp wantedt:docst:typed

倉庫指標

星標
 (13,277 顆星)
PR 合併指標
 (平均合併 8天 19小時) (30 天內合併 10 個 PR)

描述

In the documentation for the GroupRouter, it states the following:

https://github.com/akka/akka/blob/6d290d66992429ed54af35e7354cb38770b449e6/akka-actor-typed/src/main/scala/akka/actor/typed/scaladsl/Routers.scala#L18

Taking a closer look at the implementation, when the GroupRouter receives the collection of possible routees from the receptionist, it uses an unapply method that filters based on reachable nodes (at least based on the associated comment indicates). As such, it seems the router tries, at least somewhat, to avoid unreachable nodes.

Is this a correct understanding of the GroupRouter's implementation?

New documentation could instead say:

The GroupRouter routes messages to the currently known reachable nodes, but there is always a chance that a node becomes unreachable as the router sends a message.

References for the GroupRouter's use of unapply, the definition of that unapply, and the associated reference to the serviceInstances method used in the unapply:

https://github.com/akka/akka/blob/6d290d66992429ed54af35e7354cb38770b449e6/akka-actor-typed/src/main/scala/akka/actor/typed/internal/routing/GroupRouterImpl.scala#L77-L84

https://github.com/akka/akka/blob/6d290d66992429ed54af35e7354cb38770b449e6/akka-actor-typed/src/main/scala/akka/actor/typed/receptionist/Receptionist.scala#L56-L75

https://github.com/akka/akka/blob/6d290d66992429ed54af35e7354cb38770b449e6/akka-actor-typed/src/main/scala/akka/actor/typed/receptionist/Receptionist.scala#L354-L368

貢獻者指南