作者:在路上的老兵 | 来源:互联网 | 2023-09-03 10:12
我最新最全的文章都在南瓜慢说www.pkslow.com,欢送大家来喝茶!1前言SpringCloudStream专门用于事件驱动的微服务零碎,应用消息中间件来收发信息。应用Spr
文章目录[隐藏] - 2.1 增加依赖
- 2.2 定义解决收发的办法
- 2.3 配置属性
- 2.4 运行
我最新最全的文章都在 南瓜慢说 http://www.pkslow.com ,欢送大家来喝茶!
1 前言
Spring Cloud Stream
专门用于事件驱动的微服务零碎,应用消息中间件来收发信息。应用Spring Cloud Stream
可专一于业务开发,而不必花太多心理在利用与MQ之间的交互上。而且,在切换MQ后,也毋庸做太多的代码改变。
本文将整合Spring Cloud Stream
和RabbitMQ
,以实现音讯收发。
2 整合过程
2.1 增加依赖
org.springframework.cloud
spring-cloud-stream-binder-rabbit
不同的MQ应用不同的依赖,非常容易切换。
2.2 定义解决收发的办法
队列无非就是收和发,所以咱们要先定义好,怎么样发,怎么样收。
发送音讯:
@Bean
public Supplier pkslowSource() {
return () -> {
String message = "www.pkslow.com";
log.info("Sending value: " + message);
return message;
};
}
只发送一个String
,个别业务通常为Entity类。这里发送的内容也固定不变,理论业务能够通过查数据库,读文件等形式获取数据源。
接管音讯:
@Bean
public Consumer pkslowSink() {
return message -> {来源gaodai#ma#com搞*代#码网
log.info("Received message " + message);
};
}
间接打印消息即可,我的项目中的逻辑可按具体业务实现。
2.3 配置属性
配置RabbitMQ:
spring:
rabbitmq:
host: localhost
port: 5672
username: pkslow
password: 123456
配置Spring Cloud Stream
的相干项:
spring:
cloud:
stream:
function:
definition: pkslowSource;pkslowSink
bindings:
pkslowSource-out-0:
destination: pkslow-topic
pkslowSink-in-0:
destination: pkslow-topic
poller:
fixed-delay: 500
spring.cloud.stream.function.definition
会定义解决办法,如本文的收发音讯的办法;
bindings
配置对应的function
;destination指向MQ的主题;
这里配了一个poller
,每隔500ms就会发送一次音讯。
2.4 运行
先启动个RabbitMQ:
docker run \
-e RABBITMQ_DEFAULT_USER=pkslow \
-e RABBITMQ_DEFAULT_PASS=123456 \
-p 5672:5672 -p 15672:15672 \
rabbitmq:3.8-management
运行程序后,会本人创立主题、发送信息、接管信息:
运行日志如下:
能够看到每一次发/收大略是距离了500ms,当然不可能是准确的500ms。
3 总结
代码请查看:https://github.com/LarryDpk/p…
欢送关注微信公众号<南瓜慢说>,将继续为你更新…
多读书,多分享;多写作,多整顿。