有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Akka是否有内置的解决方案来从广播路由器收集答案?

   List<String> paths = Arrays.asList("/user/cars/*");
   ActorRef router =
   getContext().actorOf(new BroadcastGroup(paths).props(), "router");

   router.tell("which cars are green")

根据以上代码,我向1000000辆车发送了一条信息,回答我哪辆车是“绿色的”? 和 我预计50000辆车回答“是”,其余(950000辆)回答“否”

我认为使用广播路由器是查询汽车最有效的方法

但是,收集50000个“绿色”答案的最快方法是什么

Akka有内置的解决方案吗

(最好是同时收集答案,而不仅仅是一个演员?)


共 (1) 个答案

  1. # 1 楼答案

    答案多少取决于你所说的“收集”答案的意思

    如果你需要聚合它们(听起来像是这样),最终需要在一个演员身上实现。这意味着你的100万个答案将全部排在一个参与者的队伍中,它将成为一个热点

    如果你能容忍稍微慢一点的读取,另一种可能性是有多个计数器,它们本身就是路由器的一部分(现在就说循环)。这将计数分成多个参与者,但现在要获得真正的总计数,您必须询问所有参与者,并在读取时将其汇总。如果你想记录大量的“答案”,但只有在延迟可能不那么重要的时候,才偶尔阅读它们,这种策略可能是有益的