一、介绍
Spring-boot-starter是Spring Boot框架的一个组件,它可以帮助开发者快速构建应用程序,减少开发时间。RocketMQ是一款分布式消息中间件,可以支持高性能、高可用、高可靠的消息服务。本文介绍如何使用Spring-boot-starter标准改造项目内的RocketMQ客户端组件。
二、改造步骤
1、首先在项目中引入RocketMQ客户端依赖:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.1</version>
</dependency>
2、然后在项目中添加Spring-boot-starter依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
3、编写RocketMQ客户端配置文件:
@Configuration
public class RocketMQConfig {
@Value("${rocketmq.producer.groupName}")
private String groupName;
@Value("${rocketmq.producer.namesrvAddr}")
private String namesrvAddr;
@Value("${rocketmq.producer.maxMessageSize}")
private Integer maxMessageSize;
@Value("${rocketmq.producer.sendMsgTimeout}")
private Integer sendMsgTimeout;
@Value("${rocketmq.producer.retryTimesWhenSendFailed}")
private Integer retryTimesWhenSendFailed;
@Bean
public DefaultMQProducer getRocketMQProducer() throws Exception {
if (StringUtils.isEmpty(this.groupName)) {
throw new Exception("groupName is blank");
}
if (StringUtils.isEmpty(this.namesrvAddr)) {
throw new Exception("nameServerAddr is blank");
}
DefaultMQProducer producer;
producer = new DefaultMQProducer(this.groupName);
producer.setNamesrvAddr(this.namesrvAddr);
//如果需要同一个jvm中不同的producer往不同的mq集群发送消息,需要设置不同的instanceName
//producer.setInstanceName(instanceName);
if (this.maxMessageSize != null) {
producer.setMaxMessageSize(this.maxMessageSize);
}
if (this.sendMsgTimeout != null) {
producer.setSendMsgTimeout(this.sendMsgTimeout);
}
//如果发送消息失败,设置重试次数,默认为2次
if (this.retryTimesWhenSendFailed != null) {
producer.setRetryTimesWhenSendFailed(this.retryTimesWhenSendFailed);
}
try {
producer.start();
log.info("producer is start !!! groupName:{},namesrvAddr:{}",
this.groupName, this.namesrvAddr);
} catch (Exception e) {
log.error("producer is error {}", e);
throw new Exception(e);
}
return producer;
}
}
三、总结
本文介绍了如何使用Spring-boot-starter标准改造项目内的RocketMQ客户端组件,首先在项目中引入RocketMQ客户端依赖,然后在项目中添加Spring-boot-starter依赖,最后编写RocketMQ客户端配置文件。使用Spring-boot-starter标准改造项目内的RocketMQ客户端组件,可以极大地简化代码,提高开发效率。