| @EnableBinding | 指信道channel和exchange绑定在一起 |
三、消息驱动入门案例
========================================================================
我们通过一个入门案例来演示下通过stream来整合RabbitMQ来实现消息的异步通信的效果,所以首先要开启RabbitMQ服务,RabbitMQ不清楚的请参考此文:https://dpb-bobokaoya-sm.blog.csdn.net/article/details/90409404
1.创建消息发送者服务
1.1 创建项目
创建一个SpringCloud项目
1.2 pom文件pom文件中重点是要添加spring-cloud-starter-stream-rabbit这个依赖
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”> 4.0.0 org.springframework.boot spring-boot-starter-parent 1.5.13.RELEASE com.bobo stream-sender 0.0.1-SNAPSHOT org.springframework.cloud spring-cloud-dependencies Dalston.SR5 pom import org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-eureka org.springframework.cloud spring-cloud-starter-stream-rabbit org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin 配置文件中除了必要的服务名称,端口和Eureka的信息外我们还要添加RabbitMQ的注册信息 spring.application.name=stream-sender server.port=9060 #设置服务注册中心地址,指向另一个注册中心 eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/ #rebbitmq 链接信息 spring.rabbitmq.host=192.168.88.150 spring.rabbitmq.port=5672 spring.rabbitmq.username=dpb spring.rabbitmq.password=123 spring.rabbitmq.virtualHost=/ 创建一个发送消息的接口。具体如下:方法名称自定义,返回类型必须是SubscribableChannel,在Output注解中指定交换器名称。 public interface ISendeService { @Output(“dpb-exchange”) SubscribableChannel send(); } 在启动类中通过@EnableBinding注解绑定我们创建的接口类。 @SpringBootApplication @EnableEurekaClient // 绑定我们刚刚创建的发送消息的接口类型 @EnableBinding(value={ISendeService.class}) public class StreamSenderStart { public static void main(String[] args) { SpringApplication.run(StreamSenderStart.class, args); } } 2.创建消息消费者服务 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》 【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享 添加的依赖和发送消息的服务是一致的 xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”> 4.0.0 org.springframework.boot spring-boot-starter-parent 1.5.13.RELEASE com.bobo stream-receiver 0.0.1-SNAPSHOT org.springframework.cloud spring-cloud-dependencies Dalston.SR5 pom import org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-eureka org.springframework.cloud spring-cloud-starter-stream-rabbit org.springframework.boot spring-boot-maven-plugin 注意修改服务名称和端口 spring.application.name=stream-receiver server.port=9061 #设置服务注册中心地址,指向另一个注册中心 eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/ #rebbitmq 链接信息 spring.rabbitmq.host=192.168.88.150 spring.rabbitmq.port=5672 spring.rabbitmq.username=dpb spring.rabbitmq.password=123 spring.rabbitmq.virtualHost=/ 此接口和发送消息的接口相似,注意使用的是@Input注解。 public interface IReceiverService { @Input(“dpb-exchange”) SubscribableChannel receiver(); } 注意此类并不是实现上面创建的接口。而是通过@EnableBinding来绑定我们创建的接口,同时通过@StreamListener注解来监听dpb-exchange对应的消息服务 /** 具体接收消息的处理类 @author dengp
2.1 创建项目
2.2 pom文件



