相关推荐recommended
SpringBoot集成RocketMQ消费者@RocketMQMessageListener注解参数介绍(内含5.x新参数介绍-rocketmq-spring-boot-starter 2.2.3)
作者:mmseoamin日期:2024-02-03

SpringBoot集成RocketMQ消费者@RocketMQMessageListener注解参数介绍内含5.x新参数介绍-rocketmq-spring-boot-starter 2.2.3

    • @RocketMQMessageListener

      @RocketMQMessageListener

      @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";
      }