自学内容网 自学内容网

springboot集成rocketmq的示例代码

SpringBoot集成RocketMQ可以通过使用spring-boot-starter-rocketmq或者rocketmq-spring-boot-starter等第三方启动器来简化配置。以下是一个使用rocketmq-spring-boot-starter的示例代码,展示如何在SpringBoot项目中集成RocketMQ。

首先,你需要在你的pom.xml文件中添加对rocketmq-spring-boot-starter的依赖:

【xml】

org.apache.rocketmq
rocketmq-spring-boot-starter
2.2.0

然后,在你的application.yml或application.properties文件中配置RocketMQ的相关信息:

【yaml】
rocketmq:
name-server: 127.0.0.1:9876 # RocketMQ NameServer 地址
producer:
group: my-producer-group # 生产者组名
consumer:
group: my-consumer-group # 消费者组名

接下来,创建一个生产者类来发送消息:

【java】
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProducerController {

@Autowired
private RocketMQTemplate rocketMQTemplate;

@GetMapping("/send")
public String sendMessage(@RequestParam String message) {
    rocketMQTemplate.convertAndSend("my-topic", message);
    return "Message sent: " + message;
}

}

再创建一个消费者类来接收消息:

【java】
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;

@Service
@RocketMQMessageListener(topic = “my-topic”, consumerGroup = “my-consumer-group”)
public class ConsumerService implements RocketMQListener {

@Override
public void onMessage(String message) {
    System.out.println("Received message: " + message);
    // 在这里处理接收到的消息
}

}

确保你的RocketMQNameServer和Broker已经启动,并且127.0.0.1:9876是你的NameServer地址。如果你使用的是远程的RocketMQ集群,请替换为相应的地址。

现在,你可以启动你的SpringBoot应用,并通过访问http://localhost:8080/send?message=HelloRocketMQ来发送消息。你应该能够在控制台中看到消费者接收并打印出消息。

请注意,上述示例是一个简单的演示,实际生产环境中可能需要更多的配置和处理,比如错误处理、消息重试、幂等性处理等。


原文地址:https://blog.csdn.net/weixin_42594143/article/details/143577884

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!