如何使用 Akka 创建类似观察者的 actor 通信
Howto create a observer like communication between actors with Akka
在经典编程中,如果我想通知观察者有关更改,我会使用观察者模式。
Akka 中的等效模式是什么?
用例:
- 参与者 (PropertyServiceActor) 正在读取和缓存来自 DB 的属性
- 不同的actor可以注册到PropertyServiceActor
- 如果 属性 发生变化,PropertyServiceActor 会通知已注册的演员有关变化
//Create group
val paths = List("/user/workers/w1", "/user/workers/w2", "/user/workers/w3")
val observers: ActorRef = context.actorOf(BroadcastGroup(paths).props(), "observers")
要通知所有观察者,只需将消息发送到 observers
ActorRef。您也可以通过发送 akka.routing.AddRoutee
和 akka.routing.RemoveRoutee
.
添加和删除观察者
您可以找到更多 routing 文档。
在经典编程中,如果我想通知观察者有关更改,我会使用观察者模式。
Akka 中的等效模式是什么?
用例:
- 参与者 (PropertyServiceActor) 正在读取和缓存来自 DB 的属性
- 不同的actor可以注册到PropertyServiceActor
- 如果 属性 发生变化,PropertyServiceActor 会通知已注册的演员有关变化
//Create group
val paths = List("/user/workers/w1", "/user/workers/w2", "/user/workers/w3")
val observers: ActorRef = context.actorOf(BroadcastGroup(paths).props(), "observers")
要通知所有观察者,只需将消息发送到 observers
ActorRef。您也可以通过发送 akka.routing.AddRoutee
和 akka.routing.RemoveRoutee
.
您可以找到更多 routing 文档。