加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 动态地将路由添加到路由器actor

发布时间:2020-12-16 19:03:43 所属栏目:安全 来源:网络整理
导读:你会知道一个很好的方法在Akka / Scala添加/删除路由到Broadcaster路由器? 我一直在看Resizer – 但是不能满足我的需要(我看不出如何明确地要求调整大小调整大小(添加路径),并删除它似乎你需要发送毒药给演员,然后删除). 到目前为止,我有一个路由器与ActorR
你会知道一个很好的方法在Akka / Scala添加/删除路由到Broadcaster路由器?

我一直在看Resizer – 但是不能满足我的需要(我看不出如何明确地要求调整大小调整大小(添加路径),并删除它似乎你需要发送毒药给演员,然后删除).

到目前为止,我有一个路由器与ActorRef的列表,我发送AddRoutee和RemoveRoutee消息….

我的业务案例:我有一个演员从网络(通过代理)获取数据,并且需要将这些数据发送到独立的角色并行进行处理.由于收件人(DAG)的图形性质,图形可以在运行时演化,顶点/边缘被修改,因此需要添加和删除路线

必须有一个更干净的方法来做到这一点.

感谢指针.

代码示例我希望Akka处理:

class MDActor extends Actor {
  @volatile var routees = Set[ActorRef]()

  def receive = {
    case ar: AddRoutee => routees = routees + ar.actorRef
    case rr: RemoveRoutee => routees = routees - rr.actorRef
    case msg => routees.foreach(r => r forward msg)
  }
}

解决方法

每当你发现自己在路由器中缺少一个功能时,开始思考另一个方向是一个非常好的时机:你出现的演员代码有什么问题?除非你需要每秒路由超过几百万条消息(这是不太可能给出你的描述),所以这个演员正是正确的解决方案.路由器是一种非常专门的构造,不能用作替代;只有当他们完全符合您的要求,才能使用它们,并且您已经对基本的演员进行了基准测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读