springboot + rabbitmq headers模式

springboot + rabbitmq headers模式

配置类:

@Configuration
public class RabbitMqConfig5 {

	@Bean
	public Queue queueN1() {

		return new Queue("queueN1");
	}

	@Bean
	public Queue queueN2() {

		return new Queue("queueN2");

	}

	@Bean
	public HeadersExchange headersExchange(){

		return new HeadersExchange("headersExchange");
	}

	@Bean
	public Binding queueN1Binding(){

		Map<String,Object> map = new HashMap<>();
		map.put("queueName","queueN1");
		map.put("bindType","whereAll");
		return BindingBuilder.bind(queueN1()).to(headersExchange()).whereAll(map).match();
	}

	@Bean
	public Binding queueN2Binding(){

		Map<String,Object> map = new HashMap<>();
		map.put("queueName","queueN2");
		map.put("bindType","whereAny");
		return BindingBuilder.bind(queueN2()).to(headersExchange()).whereAny(map).match();
	}

}

发送消息 - 生产者

@Service
public class RabbitMqService5 {

	@Autowired
	RabbitTemplate rabbitTemplate;

	public void send(){

		String messageStr = "hello queueN1";
		MessageProperties messageProperties = new MessageProperties();
		messageProperties.setHeader("queueName","queueN1");
		messageProperties.setHeader("bindType","whereAll");
		Message message = new Message(messageStr.getBytes(), messageProperties);
		rabbitTemplate.send("headersExchange",null,message);
	}

	public void send2(){

		String messageStr = "hello queueN2";
		MessageProperties messageProperties = new MessageProperties();
		messageProperties.setHeader("queueName","queueN2");
		messageProperties.setHeader("bindType","whereAll");
		Message message = new Message(messageStr.getBytes(), messageProperties);
		rabbitTemplate.send("headersExchange",null,message);
	}
}

接收消息 - 消费者

@Component
public class RabbitMqComponent5 {

	@RabbitListener(queues = "queueN1")
	public void listerQueueN1(byte[] bytes){
		System.out.println("queueN1" + new String(bytes));
	}
	@RabbitListener(queues = "queueN2")
	public void listerQueueN2(byte[] bytes){
		System.out.println("queueN2" + new String(bytes));
	}

}
发布了43 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43866295/article/details/86711437