Spring cloud stream【入门介绍】,java程序设计简明教程课后答案

| @EnableBinding | 指信道channel和exchange绑定在一起 |

三、消息驱动入门案例

========================================================================

我们通过一个入门案例来演示下通过stream来整合RabbitMQ来实现消息的异步通信的效果,所以首先要开启RabbitMQ服务,RabbitMQ不清楚的请参考此文:https://dpb-bobokaoya-sm.blog.csdn.net/article/details/90409404

1.创建消息发送者服务


1.1 创建项目

创建一个SpringCloud项目

Spring cloud stream【入门介绍】,java程序设计简明教程课后答案

1.2 pom文件

pom文件中重点是要添加spring-cloud-starter-stream-rabbit这个依赖

<project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

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

1.3 配置文件

配置文件中除了必要的服务名称端口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=/

1.4 创建消费发送者接口

创建一个发送消息的接口。具体如下:方法名称自定义,返回类型必须是SubscribableChannel,在Output注解中指定交换器名称。

/**

  • 发送消息的接口

  • @author dengp

*/

public interface ISendeService {

/**

  • 指定输出的交换器名称

  • @return

*/

@Output(“dpb-exchange”)

SubscribableChannel send();

}

1.5 启动类

在启动类中通过@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】 完整内容开源分享


2.1 创建项目

Spring cloud stream【入门介绍】,java程序设计简明教程课后答案

2.2 pom文件

添加的依赖和发送消息的服务是一致的

<project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

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

2.3 配置文件

注意修改服务名称和端口

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=/

2.4 创建接收消息的接口

此接口和发送消息的接口相似,注意使用的是@Input注解。

/**

  • 接收消息的接口

  • @author dengp

*/

public interface IReceiverService {

/**

  • 指定接收的交换器名称

  • @return

*/

@Input(“dpb-exchange”)

SubscribableChannel receiver();

}

2.5 创建处理消息的处理类

注意此类并不是实现上面创建的接口。而是通过@EnableBinding来绑定我们创建的接口,同时通过@StreamListener注解来监听dpb-exchange对应的消息服务

/**

  • 具体接收消息的处理类

  • @author dengp

上一篇:rabbitmq 笔记简要 七


下一篇:使用Hibernate数据验证