https://blog.csdn.net/kxj19980524/article/details/86774671
在上面这个案例基础上实现,先搭建好一个基本的服务提供者,和消费者
服务提供者里面
导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
编写一个接口,output里是通道名称,通过这个名称,消费者与接收者进行关联.
package com.buba.api.rabbitmq;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.SubscribableChannel;
public interface SendService {
@Output("member")
SubscribableChannel sendMember();
}
启动类上加@EnableBinding值为上面的接口
增加配置文件信息
#rabbitmq
spring.rabbitmq.host=192.168.1.66
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
#rabbitmq组名称
spring.cloud.stream.bindings.member.group=groupA
注入service发送消息
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
@Autowired
SendService sendService;
//往rabbitmq发送消息
@RequestMapping("sendMember")
public String sendMember(){
Message build = MessageBuilder.withPayload("hello,rabbitmq".getBytes()).build();
Boolean send = sendService.sendMember().send(build);
return send.toString();
}
消息接收方
导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
package com.buba.rabbitmq;
import org.springframework.cloud.stream.annotation.Input;
import org.springframework.messaging.SubscribableChannel;
public interface ReceiveService {
@Input("member")
SubscribableChannel subscribableChannel();
}
启动类加上监听管道注解,与发送消息那边的名称一致
然后启动各个组件进行测试,eureka,发布者,消费者,rabbitmq