安装RabbitMQ
服务端发送消息参考
application.properties增加配置
#消费端配置
spring.rabbitmq.listener.simple.concurrency=5
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.simple.acknowledge-mode=manual
spring.rabbitmq.listener.simple.prefetch=1
接收服务端消息
注:@RabbitListener注解自动创建exchange、queue、routing key
@RabbitListener(bindings = @QueueBinding(value = @Queue(value="order-queue",durable = "true"),
exchange = @Exchange(value = "order-exchange",type = "topic",durable = "true"),
key = "order.*"))
@RabbitHandler
public void onMessage(@Payload Order order, @Headers Map<String,Object> headers, Channel channel) throws IOException {
System.out.println("收到消息,开始消费");
System.out.println("订单ID:"+order.getId());
Long aLong = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
//手动确认ACK
channel.basicAck(aLong,false);
}