Rabbitmq 使用amqp写入两个不同的队列

Rabbitmq 使用amqp写入两个不同的队列,rabbitmq,spring-amqp,Rabbitmq,Spring Amqp,我正在尝试将两个不同的消息发布到两个不同的队列,一个是errorQueue1,另一个是errorQueue2。errorQueue1具有虚拟主机vhost1,errorQueue2具有虚拟主机vhost2,两者都位于默认exchange上。我的xml和代码如下所示 <rabbit:connection-factory id="connectionFactory" host="${rabbit.host}" port="${rabbit.port}" virtual-host="${ra

我正在尝试将两个不同的消息发布到两个不同的队列,一个是errorQueue1,另一个是errorQueue2。errorQueue1具有虚拟主机vhost1,errorQueue2具有虚拟主机vhost2,两者都位于默认exchange上。我的xml和代码如下所示

<rabbit:connection-factory id="connectionFactory" host="${rabbit.host}" port="${rabbit.port}"   virtual-host="${rabbitVhost1}"
                               username="${rabbit.username}" password="${rabbit.password}"/>

    <rabbit:template id="rabbitTemplate" connection-factory="connectionFactory"/>
    <rabbit:admin id="rabbitAdmin" connection-factory="connectionFactory"/>



    <rabbit:queue id="queueOne" name="${queue.one.queue}"/>
    <rabbit:queue id="queueTwo" name="${queue.two.queue}"/>

    <rabbit:listener-container connection-factory="connectionFactory">
        <rabbit:listener id="typeOneListener" ref="typeOneListener" method="handleMessage" queues="queueOne"/>
        <rabbit:listener id="typeTwoListener" ref="typeTwoListener" method="handleMessage" queues="queueTwo"/>
    </rabbit:listener-container>


    <rabbit:topic-exchange id="my.topic" name="${my.topic}">
                <rabbit:bindings>
                    <rabbit:binding pattern="${queue.one.queue}" queue="queueOne"/>
                    <rabbit:binding pattern="${queue.two.queue}" queue="queueTwo"/>
                </rabbit:bindings>
    </rabbit:topic-exchange>



@Autowired
    RabbitTemplate rabbitTemplate;
public void sendMessage() {
        Message message;
        for (int i = 0; i < 10; i++) {
            message = createMessage1(">>> For one");
            rabbitTemplate.send("queue.one", message);
            message = createMessage2(">>> For two");
            rabbitTemplate.send("queue.two", message);
            System.out.println("Message sent: " + message);
            index.getAndIncrement();
        }
    }

@自动连线
兔样板兔样板;
公共无效发送消息(){
信息;
对于(int i=0;i<10;i++){
message=createMessage1(“>>>表示一个”);
rabbitTemplate.send(“queue.one”,message);
message=createMessage2(“>>>表示两个”);
rabbitTemplate.send(“queue.two”,message);
System.out.println(“发送的消息:+消息”);
index.getAndIncrement();
}
}
但我想确认我所做的是正确的?我应该写到exchange还是可以直接写到其他队列?还有一个问题是连接工厂绑定到vhost1如何可以写到vhost 2?我应该再创建一个连接工厂实例吗?我想写到同一本地主机上的两个不同队列到两个不同的队列vhosts

连接工厂绑定到vhost 1如何写入vhost 2

您需要2个连接工厂和2个独立的
rabbitmplate
s