Spring Cloud Stream实现使用RocketMQ

本文介绍了如何在Spring Cloud Stream中集成RocketMQ,分别阐述了生产者和消费者的配置与实现。在生产者部分,提到了application.yml的内容和代码实现;消费者部分则详细说明了Maven配置、application.yml配置以及接收处理类的编写。最后,通过案例测试展示了消费者的控制台输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven配置 ,对于 spring cloud dependencies 这些依赖,更推荐放到一个通用依赖管理父项目

   <properties>
   <!-- Spring Cloud Settings -->
        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
        <spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version>
   </properties>

 <dependencies>
      <dependency>
         	<groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
     </dependency>

     <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${spring-cloud-alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
     </dependency>


	 <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-web</art
使用 Spring Cloud Stream 集成 RocketMQ 可以实现消息驱动的微服务架构。下面是使用步骤: 1. 添加依赖 在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rocketmq</artifactId> <version>3.1.0</version> </dependency> ``` 2. 配置 RocketMQ 在 `application.yml` 文件中添加以下配置: ```yaml spring: cloud: stream: rocketmq: binder: name-server: ${ROCKETMQ_NAMESRV_ADDR:localhost:9876} producer: group: my-group consumer: group: my-group ``` 其中 `ROCKETMQ_NAMESRV_ADDR` 是 RocketMQ 的 NameServer 地址,`my-group` 是消费者生产者所属的组名。 3. 定义消息通道 在 Spring Boot 应用程序中定义一个消息通道。可以使用 `@Input` 和 `@Output` 注解来定义通道。例如: ```java public interface MyChannels { String INPUT = "myInput"; String OUTPUT = "myOutput"; @Input(INPUT) SubscribableChannel input(); @Output(OUTPUT) MessageChannel output(); } ``` 4. 使用消息通道 使用 `@EnableBinding` 注解启用绑定,并注入定义的消息通道。例如: ```java @SpringBootApplication @EnableBinding(MyChannels.class) public class Application { private final MyChannels channels; public Application(MyChannels channels) { this.channels = channels; } @Bean public ApplicationRunner runner() { return args -> { channels.output().send(MessageBuilder.withPayload("Hello, World!").build()); }; } @StreamListener(MyChannels.INPUT) public void handle(String message) { System.out.println("Received message: " + message); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 在上面的示例中,`runner()` 方法使用 `output()` 方法发送一条消息到 `myOutput` 通道。`@StreamListener` 注解接收 `myInput` 通道的消息,并将其打印到控制台。 这样就可以使用 Spring Cloud Stream 集成 RocketMQ 实现消息驱动的微服务架构了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值