交换以交换Java中的发布RabbitMQ

时间:2020-01-25 15:11:57

标签: java spring spring-boot rabbitmq

我有两个交易所A(messageExchange)和B(UserExchange)时有此要求。生产者的所有消息都应发布到ex。 A绑定到一个队列,该队列的工作是打印所有已发布的消息,A也绑定到B,现在消息以后应发送到B,而B绑定到三个队列Q1,Q2,Q3,这些队列的使用者正在监听并处理消息。我该如何实现? 这是我的绑定

    @Bean
public Binding exchangeBinding() {
    return BindingBuilder.bind(UserExchange()).to((messageExchange())).with(AppConstants.ROUTING_KEY_EXCHANGES);
}

@Bean
public Binding messageBinding() {
    return BindingBuilder.bind(MessageQueue()).to(messageExchange()).with(AppConstants.ROUTING_KEY_MESSAGES);
}

@Bean
public Binding addUserBinding() {
    return BindingBuilder.bind(UserAddQueue()).to(UserExchange()).with(AppConstants.ROUTING_KEY_ADD);
}

@Bean
public Binding deleteUserBinding() {
    return BindingBuilder.bind(UserDeleteQueue()).to(UserExchange()).with(AppConstants.ROUTING_KEY_DELETE);
}

@Bean
public Binding editUserBinding() {
    return BindingBuilder.bind(UserEditQueue()).to(UserExchange()).with(AppConstants.ROUTING_KEY_EDIT);
}

消息生产者

    public void send(String routing_key, User user) {
    try {
        this.rabbitTemplate.convertAndSend(AppConstants.MESSAGE_EXCHANGE, routing_key, (Object)user);
    }
    catch (AmqpException e) {
        System.out.println(String.format("Failed to publish message - error : %s ", e.getMessage()));
    }
}

0 个答案:

没有答案
相关问题