rocketmq-spring icon indicating copy to clipboard operation
rocketmq-spring copied to clipboard

rocketmq-v5-client-spring-boot怎么没有rocketmq.push-consumer配置了?

Open JogJo opened this issue 2 months ago • 1 comments

application.yml中配置,只有producer和simple-consumer,没有看到push-consumer,是取消掉了吗?

官方示例里还是使用了push-consumer去配置,并通过实现RocketMQListener来消费消息

rocketmq: push-consumer: endpoints: 192.168.1.100:8081 tag: "*" simple-consumer: endpoints: 192.168.1.100:8081

JogJo avatar Oct 24 '25 02:10 JogJo

RocketMQProperties 里面没有 Push-consumer 的配置了,代码里面,实际上在 构建 DefaultListenerContainer 时

Image
private DefaultListenerContainer createRocketMQListenerContainer(String name, Object bean, RocketMQMessageListener annotation) {
        DefaultListenerContainer container = new DefaultListenerContainer();
        container.setName(name);
        container.setRocketMQMessageListener(annotation);
        container.setMessageListener((RocketMQListener) bean);
        container.setAccessKey(environment.resolvePlaceholders(annotation.accessKey()));
        container.setSecretKey(environment.resolvePlaceholders(annotation.secretKey()));
        container.setConsumerGroup(environment.resolvePlaceholders(annotation.consumerGroup()));
        container.setTag(environment.resolvePlaceholders(annotation.tag()));
        // 这里 
        container.setEndpoints(environment.resolvePlaceholders(annotation.endpoints()));
        container.setTopic(environment.resolvePlaceholders(annotation.topic()));
        container.setNamespace(environment.resolvePlaceholders(annotation.namespace()));
        container.setRequestTimeout(Duration.ofSeconds(annotation.requestTimeout()));
        container.setMaxCachedMessageCount(annotation.maxCachedMessageCount());
        container.setConsumptionThreadCount(annotation.consumptionThreadCount());
        container.setMaxCacheMessageSizeInBytes(annotation.maxCacheMessageSizeInBytes());
        container.setType(annotation.filterExpressionType());
        return container;
    }

通过这种方式,从配置文件之中获取的

String ENDPOINTS_PLACEHOLDER = "${rocketmq.push-consumer.endpoints:}"; 

我理解是没有取消, 但是为什么不直接放在 RocketMQProperties 之中呢?

freedom0123 avatar Dec 02 '25 14:12 freedom0123