JAVA全系列 教程
3762个小节阅读:7090.5k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
要使用RabbitMQ绑定器,可以通过使用以下Maven坐标将其添加到 Spring Cloud Stream应用程序中
xxxxxxxxxx
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
或者
xxxxxxxxxx
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
完整依赖如下:
xxxxxxxxxx
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<!-- 引入Eureka client依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
</dependencies>
xxxxxxxxxx
server:
port: 800
eureka:
instance:
# 实例名字
instance-id: stream-producer8001
client:
service-url:
# 指定单机eureka server地址
#defaultZone: http://localhost:7001/eureka/
defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/
spring:
application:
name: stream-producer
rabbitmq:
port: 5672
host: 192.168.66.101
username: guest
password: guest
cloud:
stream:
bindings:
# 广播消息
myBroadcast-out-0: # 生产者绑定名称,myBroadcast是自定义的绑定名称,out代表生产者,0是固定写法
destination: my-broadcast-topic # 对应的真实的 RabbitMQ Exchange
注意:
spring.cloud.function.definition 属性非常重要,务必配置。
xxxxxxxxxx
@Setter
@Getter
public class MyMessage implements java.io.Serializable {
// 消息体
private String payload;
}
xxxxxxxxxx
package com.itbaizhan.service.impl;
import com.itbaizhan.service.IMessageProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.function.StreamBridge;
import org.springframework.stereotype.Service;
/**
* 定义消息的推送管道
*/
@Service
public class MessageProviderImpl implements IMessageProvider {
@Autowired
private StreamBridge streamBridge;
@Override
public String send(String message) {
MyMessage myMessage = new MyMessage();
myMessage.setPayload(message);
// 生产消息
// 第一个参数是绑定名称,格式为:自定义的绑定名称-out-0,myBroadcast是自定义的绑定名称,out代表生产者,0是固定写法
// 自定义的绑定名称必须与消费方法的方法名保持一致
// 第二个参数是发送的消息实体
streamBridge.send("myBroadcast-out-0", myMessage);
return "SUCCESS";
}
}
xxxxxxxxxx
@RestController
public class SendMessageController {
@Resource
private IMessageProvider messageProvider;
@GetMapping("/send")
public String sendMessage(String message){
return messageProvider.send(message);
}
}