我有一个演员系统,有三个演员并列在下面
我的要求是将actor系统集中在4个节点中,但我不希望所有节点中的RMQreaderactor都从队列中读取消息。只有一个节点应该读取消息并告诉其他参与者进行处理。
注意:如果我让所有节点的RMQreaderactor从队列中读取消息,那么它会导致重复读取(因为我不会在读取后立即发出Ack)
请你帮我解决一下我的要求
答案 0 :(得分:0)
我的建议不是那条路!由于您希望拥有4个节点集群,因此可以从以下几个原因中更好地利用所有这些节点:
你可以让所有节点都运行RMQreaderActor,因为你正在使用(rabbit mq)其他消费者(来自不同节点的RMQreaderActor的其他实例)不会选择未包装的消息 - 除非有什么东西我不知道&#39进入你的消费者。
如果那些不能说服你,请阅读(集群节点角色,单例和代理参与者)http://doc.akka.io/docs/akka/current/scala/cluster-singleton.html - 在这里你看到如何拥有一个单独的actor(所有集群节点中一个actor的单个实例)。 / p>