上篇文章介绍了springboot集成自建rocketmq双主双从
https://blog.csdn.net/C18298182575/article/details/121381621
这里说集成购买的rocketmq,主要区别在哪
1.多了一个client-ip,之前这个是不需要配置的,默认取本机ip
2.access-key secret-key,这是对接阿里,腾讯等必须的密钥,配置即可
3.在代码层面实现以上两个配置
配置
rocketmq:
name-server: "192.168.*:9876;192.168.*:9876"
access-channel: CLOUD
client:
ip: ${HOST_IP:${spring.cloud.client.ip-address}}
producer:
access-key: "*"
secret-key: "*"
#发送消息超时时间,默认3000
sendMsgTimeout: 3000
#发送消息失败重试次数,默认2
retryTimesWhenSendFailed: 2
algorithm:
producerGroup: algorithm-api
#跟接受的集群组有关,同一个集群组所采用的comsumerGroup是一致的
group: GID_push
consumer:
access-key: "*"
secret-key: "*"
#跟生产者的topic对应
consumeMessageBatchMaxSize: 3
consumeThreadMin: 20
consumeThreadMax: 64
pay_group: GID_pay
topicAndTagInfos:
之前说过
RocketMQProperties,这个配置类与配置文件属性对应,生产者消费者都有以下属性,自动实现注入bean private String accessKey; private String secretKey;
client-ip配置,是在消费端,如下多实现一个接口,
RocketMQPushConsumerLifecycleListener
@Component
@Slf4j
@RocketMQMessageListener(topic = "${rocketmq.consumer.topicAndTagInfos.topic}", consumerGroup = "${rocketmq.consumer.group}")
public class PayConsumer implements RocketMQListener<MessageExt>, RocketMQPushConsumerLifecycleListener {
@Value("${rocketmq.client.ip}")
private String hostIp;
@Override
@Transactional(rollbackFor = Exception.class)
public void onMessage(MessageExt message) {
}
@Override
public void prepareStart(DefaultMQPushConsumer consumer) {
consumer.setClientIP(hostIp);
}
}