1.导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
2.配置yml
spring:
rabbitmq:
host: 192.168.0.133
port: 5672
password: guest
username: guest
3.新建接口
public interface StreamClient {
String INPUT="input";
String OUTPUT="output";
@Input(StreamClient.INPUT)
SubscribableChannel input();
@Output(StreamClient.OUTPUT)
MessageChannel output();
}
4.消费者
@Component
@EnableBinding(StreamClient.class)
@Slf4j
public class StreamReceiver {
@StreamListener(StreamClient.INPUT)
@SendTo(StreamClient.OUTPUT)
public Object process(Object message){
log.info("StreamReceiver1: {}",message);
return message;
}
@StreamListener(StreamClient.OUTPUT)
public void processOutput(Object message){
log.info("StreamReceiver2: {}",message);
}
}
5.生产者
@RestController
public class SendMessageController {
@Autowired
private StreamClient streamClient;
@GetMapping("/sendMessage")
public void process(){
OrderDTO orderDTO=new OrderDTO();
orderDTO.setOrderId("1111111111");
streamClient.output().send(MessageBuilder.withPayload("now "+orderDTO).build());
}
}
6.注意消息分组
spring:
cloud:
stream:
bindings:
input:
group: order #消息分组
content-type: application/json #消息存储格式