private static final String QUEUE_NAME="cre_in_out."+ getIp();
@Bean
public org.springframework.amqp.core.Queue queue(){
return new org.springframework.amqp.core.Queue(QUEUE_NAME,true);
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "#{queue.name}", durable = "true"),
exchange = @Exchange(value = "stockMsgProducer", durable = "true", type = "topic"),
key = "stock_state"
))
@RabbitHandler
public void onInOutMessage(@Payload String message){
// to do something
}
private static String getIp() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return "";
}
queue的队列名称采用这种方式可以实现动态生成队列,在集群的情况下可以使每台服务器都收到生产者的信息