当前位置: 首页 > 知识库问答 >
问题:

Akka独立路由器与自包含路由器参与者

翟弘
2023-03-14

有人能解释一下(如果可能的话,用一些代码或参考)独立路由器和自包含的路由器参与者之间有什么区别吗?

提前谢谢你。

编辑:

val router1: ActorRef = 
   context.actorOf(FromConfig.props(Props[Worker]), "router1")
Router(RoundRobinRoutingLogic(), routees)

与此相比有何不同?:

val router1: ActorRef = 
   context.actorOf(FromConfig.props(Props[Worker]), "router1")

在性能或能力方面有什么区别吗?

共有1个答案

孔鸿云
2023-03-14

主要区别在于如何管理路由。您可以自己管理路由,也可以使用具有配置功能的自包含路由器执行元。

情况1-为了管理路由,您必须创建路由参与者并添加到路由器。注意路由参与者是否被终止,以便可以将它们再次添加到路由器中。如选自akka文档

var router = {
    val routees = Vector.fill(5) {
      val r = context.actorOf(Props[Worker])
      context watch r
      ActorRefRoutee(r)
    }
    Router(RoundRobinRoutingLogic(), routees)

如您所见,创建路由器的执行元必须确保添加了路由。

new RoundRobinPool(5, new DefaultResizer(1, 10))
 类似资料:
  • 随着时间的推移,让广播演员动态添加/删除路由的正确方法是什么? 问题的背景:参与者监听特定项目的价格变化,然后向所有其他参与者(路由者)广播价格变化,他们根据内部规则行事(例如,如果价格是X买入或卖出)。 我是Akka的新手,但在阅读文档后,我相信我已经找到了所需的组件,但如果您觉得我的设计或使用的组件不正确,请评论/回答。 我想从固定的路由列表 类似于动态大小的BroadcastRouter,其

  • ``` 所以,我的问题是--有没有一种干净的方法来结构和重构路由,而不是将它们集中在一个大的路由定义中?我也许可以创建一个参与者(路由器)的层次结构,主路由定义只是将其委托给路由器,随着我们深入参与者层次结构,我们会逐步添加更多的细节。但是否有一两种普遍接受的模式来组织路线呢?

  • 在阅读了Akka的文档和网上的一些帖子之后,我仍然对路由器和调度器之间的关系没有一个清楚的认识。 1)路由器是否总是使用dispatcher向路由进行调度?路由器是否可以不使用dispatcher完成其工作? 2)如果配置中没有定义额外的调度器,我的理解是将使用默认调度器。在我的actor系统中,我有一个集群,其中有两个生产者actor使用路由器actor和三个消费者actor。生产者和消费者都运

  • 问题内容: 我觉得这是一个简单的用例,但也许我遗漏了一些东西… 我想有 两个单独的视图,它们分别由各自的菜单控制。当我单击一个菜单上的链接时(或为此),我只想更新其中一个视图。此外,只需在中反映两个视图之一。 我尝试 定义一些状态: 现在,从您最喜欢的控制器中按,然后看着它将废话换成。我还想省略此状态下的定义,因为只能在我定义的第一和第三状态之间进行更改。 我在index.html中彼此并排坐着:

  • 自定义路由 easySwoole支持路由拦截。其路由利用fastRoute实现,因此其路由规则与其保持一致,该组件的详细文档请参考 GitHub文档 路由定义 若需要再easySwoole使用路由拦截功能,请在应用目录(默认为App)下,建立Router类,井继承Core\AbstractInterface\AbstractRouter实现addRouter方法,如果在类UNIX系统下请严格注意文

  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re