集成Rabbit mq

1. config

POM:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

application地址配置:

spring:
  rabbitmq:
    port: 5672
    username: admin
    password: admin
    virtual-host: CgpDev
    host: 192.18.21.226

2. Consumer Example

@Slf4j
@Service
@Configuration
public class CallbackMessageService {

    private static final String CALLBACK_MESSAGE = "CALLBACK_QUEUE";

    @Bean
    public Queue callbackQueue() {
        return new Queue(CALLBACK_MESSAGE, true);
    }

    /**
     * 处理消息
     *
     * @param message
     */
    @RabbitListener(queues = CALLBACK_MESSAGE)
    public void processCallbackMessage(Message message) {

        String body = "";
        try {
            body = new String(message.getBody());
            log.debug("processCallbackMessage消费消息成功");
        } catch (Exception ex) {
            log.error("processCallbackMessage消费消息失败");
        }

        if (StringUtils.hasLength(body)) {
            //dealCallbackMessage(body);
        }
    }
}

3. 采坑

使用官方例子:

@Component
@RabbitListener(queues="test_mq_testQueue")
public class Receiver {

    @RabbitHandler 
    public void process(String msg){
        System.out.println(msg);
    }
}

但是运行接收消息时,后台一直循环报错

Caused by: org.springframework.amqp.AmqpException: No method found for class [B

@RabbitListener(queues=”test_mq_testQueue”)不需要放在类上。直接注释在方法上就好

Ref:http://blog.csdn.net/olinner123/article/details/77477323

results matching ""

    No results matching ""