Stream(消息驱动)
概念:
・
・
消息驱动的设计模式
・
・
Stream工作流程图与编码常用注解和API
・
・
案例说明
・
・
・
消息生产者8801子模板建立
・
・
・
1、改POM
・
・
2、改YML
・
・
3、主启动类
・
・
4、业务类
・
・
发送消息接口
・
发送消息实现类
・
Controller
・
・
5、测试
・
消息消费者8802子模板建立
・
・
1、改pom
・
・
2、改yml
・
・
3、主启动类
・
・
4、业务类
・
・
5、测试
・
・
SpringCloud Stream 之分组消费
・
概念图
・
启动运行后有问题
・
一、重复消费问题(我们没有自定义分组,默认分成了两组,当生产者发出信息2个组都会去处理导致了重复消费)
解决:
・
代码实现:(让两个消费者在同一个组就不会存在重复消费了)
・
・
步骤
・
・
结论:分在同一组的多个微服务实例,只有一个微服务会去消费,这样就避免了重复消费
・
SpringCloud Stream 之持久化
・
・
・
说明Group分组的重要性,在Group分组之后,就算消费者服务器停掉,然后消息提供者再给rabbitMQ发送消息,当Group分组中的服务再次启动上来后也能来继续处理他没启动时消费者发送到rabbitMQ中的消息,如果没有用Group分组则不会有这种功能。
・
・
・
总结:
今天主要学习了 SpringCloud Stream结合RabbitMQ对消息的处理,SpringCloud Stream 之分组消费能够很好的解决重复消费问题, SpringCloud Stream 之持久化能够很好的解决消费者服务器停掉,然后消息提供者再给rabbitMQ发送消息,当Group分组中的服务再次启动上来后也能来继续处理他没启动时消费者发送到rabbitMQ中的消息的问题。具体怎么在项目中配置部署看上面案例。