rocketmq-spring
rocketmq-spring copied to clipboard
rocketmq-v5-client-spring-boot怎么没有rocketmq.push-consumer配置了?
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
RocketMQProperties 里面没有 Push-consumer 的配置了,代码里面,实际上在 构建 DefaultListenerContainer 时
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 之中呢?