두 개의 노드가있는 rabbitmq 클러스터가 있습니다. node1에서 호스팅 될 큐와 node2에서 호스팅되는 다른 큐를 생성하고 싶습니다.Pika and RabbitMQ - 특정 노드에 대기열 만들기
ConnectionParameters에서 node2로 호스트를 설정하더라도 대기열은 node1에서 계속 생성됩니다.
프로그래밍 방식으로 pika를 사용하여 대기열을 만들려는 노드를 지정하는 방법을 잘 모르겠습니다. 이 이러한 매개 변수는 queue_declare
에 없다,이 같은 인수를 전달하는 것은 작동하지 않습니다 호스팅 노드를 지정하기위한 모든 인터페이스는
channel.queue_declare(queue="whereami", durable=True, exclusive=False, auto_delete=False, callback=on_queue_declared, arguments= {'node':'[email protected]'})
있습니까? 이 사건을 처리 할 다른 방법이 있습니까?
감사합니다.
이것은 작동하지 않습니다. 여전히 클러스터 전체에 연결되어 마스터에 호스트를 생성합니다. 마찬가지로, 클러스터에 node1과 node2가 있고 ConnectionParameters에서 node2에 연결되어있는 경우에도 node1에 대기열이 생성됩니다. queue_declare 자체에 뭔가가 있어야합니다. –
클러스터 설정에서 좀 더 구체적으로 설명 할 수 있습니까? 1.이 노드는 별도의 물리적 시스템에 있습니까? 아니면 포트가 다른 동일한 시스템에 있습니까? 2. 액티브/액티브 또는 액티브/패시브 설정으로 고 가용성으로 구성되어 있습니까? – bitcycle
예! 두 개의 개별 물리적 컴퓨터에 있으며 두 디스크 노드입니다. 고 가용성을 위해 구성되지 않았습니다. 기본적으로 두 개의 서로 다른 비즈니스 그룹이 두 개의 다른 노드를 사용합니다. 그들은 같은 교환을 공유 할 수 있도록 클러스터되어 있습니다. 대기열을 분리하여 유지하면 한 그룹의 프로그램이 메시지 수신을 중지하면 대기열이 가득 차서 디스크 공간을 차지할 때만 해당 그룹에 영향을 미칩니다. –