我有两个交易所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()));
}
}