@Target(value=METHOD)
@Retention(value=RUNTIME)
@Documented
public @interface RocketMqCustomConsumer
RocketMQ 将自定义消费者绑定到指定方法
注意!!! 消费者必须保证幂等性! 任何一条消息都有可能被重复消费!
https://github.com/shepherdviolet/slate/blob/master/docs/rocketmq/guide.md
@Bean(name = "consumerBeanName", destroyMethod = "shutdown")
public DefaultMQPushConsumer customConsumer() throws MQClientException {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer-custom");
consumer.setNamesrvAddr(nameServer);
consumer.subscribe("custom-topic", "*");
//注意!!! consumer不要启动, 也不要绑定listener, 因为这些操作会在绑定方法时自动进行
return consumer;
}
@RocketMqCustomConsumer(
consumerBeanName = "consumerBeanName",
isOrdered = false
)
public boolean slateCustomConsumerTest(MessageExt message) {
logger.info("Received String: {}", message);
return true;
}
| 限定符和类型 | 必需的元素和说明 |
|---|---|
java.lang.String |
consumerBeanName
DefaultMQPushConsumer Bean Name
|
boolean |
isOrdered
true 顺序消费 false 并发消费
|
| 限定符和类型 | 可选元素和说明 |
|---|---|
java.lang.String |
charset
字符集, 默认UTF-8
|
boolean |
reconsumeWhenException
true 抛出异常时重新消费消息(RECONSUME_LATER), 默认false
|