springcloud stream

屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。

通过定义绑定器作为中间层,实现了应用程序与消息中间件细节之间的隔离。rabbitmq和kafka

启动这四个服务和rabbitmq进行测试。

 

 8801是消息发送方,8802和8803作为一组是消息接收方

测试结果:

当发送两次请求:http://localhost:8801/send

8801控制台输出

2021-05-29 10:46:38.575 INFO 1324 --- [nio-8801-exec-2] c.s.s.service.impl.MessageProviderImpl : send serial is: 7606b01c-05dc-4885-85b1-a78c6c0ecc99
2021-05-29 10:46:39.188 INFO 1324 --- [nio-8801-exec-3] c.s.s.service.impl.MessageProviderImpl : send serial is: 8100e2d4-f385-4d1d-9dcf-822a734001a0

8802控制台输出

2021-05-29 10:46:38.588  INFO 14636 --- [hange.shishiA-1] c.s.s.c.MessageReceiveController         : 1 received serial is :7606b01c-05dc-4885-85b1-a78c6c0ecc99   port:8802

8803控制台输出

2021-05-29 10:46:39.200  INFO 1772 --- [hange.shishiA-1] c.s.s.c.MessageReceiveController            : 2 received serial is :8100e2d4-f385-4d1d-9dcf-822a734001a0   port:8803

能看到分组为一组,消息不会重复发送。而且消息分组能实现消息持久化。

实现了消息持久化的验证:

关闭两个消费端,在8801发送四次。发送完成后再启动8802,能看到项目启动过程中,接受到了消息

 

 

 

rabbitmq分组shishiA有两个消费者:

代码见:

https://github.com/lulu4pix/springcloud/commit/8cc0b70d3423806a246d04609f6e51233ad5854c

 

 

 

#补充:

看到别人记的比较好的笔记就懒得写细节了:

https://blog.csdn.net/qq_31850627/article/details/108591358

 

posted @ 2021-05-29 10:50  圣金巫灵  阅读(60)  评论(0编辑  收藏  举报