@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RocketMQMessageListener { // nameServer服务地址,多个用;隔开,可以直接在注解中指定也可以读取配置文件 String NAME_SERVER_PLACEHOLDER = "${rocketmq.name-server:}"; // ACL验证key,服务端开启了ACL时使用,可以直接在注解中指定也可以读取配置文件 String ACCESS_KEY_PLACEHOLDER = "${rocketmq.consumer.access-key:}"; // ACL验证密钥,服务端开启了ACL时使用,可以直接在注解中指定也可以读取配置文件 String SECRET_KEY_PLACEHOLDER = "${rocketmq.consumer.secret-key:}"; // 自定义的消息轨迹主题 String TRACE_TOPIC_PLACEHOLDER = "${rocketmq.consumer.customized-trace-topic:}"; String ACCESS_CHANNEL_PLACEHOLDER = "${rocketmq.access-channel:}"; // 消费者分组,不同消费者分组名称不能重复 String consumerGroup(); // topic名称 String topic(); // selectorType 消息选择器类型 // 默认值 SelectorType.TAG 根据TAG选择 // 仅支持表达式格式如:“tag1 || tag2 || tag3”,如果表达式为null或者“*”标识订阅所有消息 // SelectorType.SQL92 根据SQL92表达式选择 SelectorType selectorType() default SelectorType.TAG; /** * Control which message can be select. Grammar please see {@link SelectorType#TAG} and {@link SelectorType#SQL92} */ String selectorExpression() default "*"; // 消费模式,可以选择并发或有序接收消息,默认并发消费 ConsumeMode.CONCURRENTLY ConsumeMode consumeMode() default ConsumeMode.CONCURRENTLY; // 控制消息模式,可以选择集群和广播,默认集群 MessageModel.CLUSTERING // 集群: 消息只会被一个消费者消费 广播:消息被所有消费者都消费一次 MessageModel messageModel() default MessageModel.CLUSTERING; // 消费者最大线程数,在5.x版本该参数已经不推荐使用,因为该实现方式底层线程使用LinkedBlockingQueue作为阻塞队列,队列长度使用Integer.MAX_VALUE。 @Deprecated int consumeThreadMax() default 64; // 消费线程数,属于rocketmq-spring-boot-starter 2.2.3新参数,推荐使用该版本 int consumeThreadNumber() default 20; // 消费失败重试次数,在MessageModel.CLUSTERING模式中,-1表示16,消费失败后会重试16次 int maxReconsumeTimes() default -1; // 最大消费时间 默认15分钟 long consumeTimeout() default 15L; // 发送回复消息超时 默认3000毫秒 int replyTimeout() default 3000; // ACL验证key,服务端开启了ACL时使用,可以直接在注解中指定也可以读取配置文件 String accessKey() default ACCESS_KEY_PLACEHOLDER; // ACL验证密钥,服务端开启了ACL时使用,可以直接在注解中指定也可以读取配置文件 String secretKey() default SECRET_KEY_PLACEHOLDER; // 切换消息跟踪的标志实例 boolean enableMsgTrace() default false; // 自定义跟踪主题 String customizedTraceTopic() default TRACE_TOPIC_PLACEHOLDER; // nameServer服务地址,可以直接在注解中指定也可以读取配置文件 String nameServer() default NAME_SERVER_PLACEHOLDER; // The property of "access-channel". String accessChannel() default ACCESS_CHANNEL_PLACEHOLDER; // The property of "tlsEnable" default false. String tlsEnable() default "false"; // 使用者的命名空间 String namespace() default ""; // 并发模式下的消息消耗重试策略,下次消费时的延迟级别 int delayLevelWhenNextConsume() default 0; // 以有序模式暂停拉入的间隔,以毫秒为单位。 // 最小值为10,最大值为30000 默认1000毫秒 int suspendCurrentQueueTimeMillis() default 1000; // 关闭使用者时等待消息消耗的最长时间,以毫秒为单位。 // 最小值为0 默认1000毫秒 int awaitTerminationMillisWhenShutdown() default 1000; // 实例名称 String instanceName() default "DEFAULT"; }