如何创建一个像Akka的演员之间的沟通观察者

时间:2015-03-20 09:05:54

标签: akka observer-pattern

在经典编程中,我使用obeserver模式,以防我想通知观察者有关变化。

Akka的等效模式是什么?

用例:

  • 一个actor(PropertyServiceActor)正在从DB
  • 读取和缓存属性
  • 不同的演员可以注册到PropertyServiceActor
  • 如果属性发生更改,PropertyServiceActor会通知已注册的actor有关更改的信息

1 个答案:

答案 0 :(得分:5)

查看BroadcastGroup

//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.AddRouteeakka.routing.RemoveRoutee来添加和删除观察者。

您可以找到更多routing个文档。