消息驱动的微服务-RocketMQ

一、安装RocketMQ

详见该手记:http://www.imooc.com/article/290089

二、搭建RocketMQ控制台

详见该手记:http://www.imooc.com/article/290092

三、Spring消息编程模型01-编写生产者

1.导入依赖
在这里插入图片描述
2.添加配置
在这里插入图片描述
3.最后直接在代码中使用即可:
在这里插入图片描述
4.在调用了getMemberInfo接口后,可在RocketMQ控制台界面查看到该条信息:
在这里插入图片描述

四、Spring消息编程模型02-编写消费者

1.前两步和第三节一致,只不过在配置文件中不需要添加group信息;
2.编写代码,实现RocketMQListener类并重写onMessage方法即可,RocketMQListener携带的泛型为生产者推送的消息体;
在这里插入图片描述

五、分布式事务

1.流程剖析
在这里插入图片描述
2.概念术语
半消息:暂时无法消费的消息。生产者将消息发送到了MQ server,但这个消息会被标记为“暂不能投递”状态,先存储起来;消费者不会去消费这条消息。

消息回查:网络断开或生产者重启可能导致丢失事务消息的第二次确认。当MQ server发现消息长时间处于半消息状态时,将向消息生产者发送请求,询问该消息的最终状态(提交或回滚)。

3.消息状态
Commit:提交事务消息,消费者可以消费此消息;
Rollback:回滚事务消息,broker会删除该消息,消费者不能消费;
UNKNOWN:broker需要回查确认该消息的状态;

六、分布式事务-编码实现

1.修改发送消息方法为发送半消息:
在这里插入图片描述
2.接着创建一个类实现RocketMQLocalTransactionListener接口:
在这里插入图片描述

七、Spring Cloud Stream-编写生产者

Spring Cloud Stream 是一个构建消息驱动微服务的框架,对消息中间件的进一步封装,让开发人员使用的更加方便,马上开始使用教学:
1.添加依赖:
在这里插入图片描述
2.在启动类上添加注解:
在这里插入图片描述
3.添加配置文件:
在这里插入图片描述
4.到此Spring Cloud Stream就添加完成了,接下来学习如何使用Spring Cloud Stream作为生成者发送消息,以下为代码示例:
在这里插入图片描述
就是这么轻松,无感!

八、Spring Cloud Stream-编写消费者

1.添加依赖同第七节一致;

2.在启动类上添加注解,此时注解内参数为Sink.class:
在这里插入图片描述
3.添加配置文件:
在这里插入图片描述
4.到此消费者的添加就完成啦,接下来直接上代码示例:
在这里插入图片描述
就是这么轻松!

九、Spring Cloud Stream自定义接口-发送消息

1.自定义一个接口:
在这里插入图片描述
2.在启动类上加上该接口:
在这里插入图片描述
3.添加配置文件:
在这里插入图片描述
4.这样就创建好了自定义接口,接下来是代码示例如何使用自定义接口来发送消息:
在这里插入图片描述
可以发现,和默认的方式一致!

十、Spring Cloud Stream自定义接口-消费消息

1.自定义一个接口:
在这里插入图片描述
2.在启动类上加上该接口:
在这里插入图片描述
3.添加配置文件:
在这里插入图片描述
4.这样就创建好了自定义接口,接下来是代码示例如何使用自定义接口来消费消息:
在这里插入图片描述
自定义方式和默认方式其实一致,只是对应的参数修改即可;

十一、消息过滤:

通过消息过滤可以选择符合条件的消息,详见该手记:http://www.imooc.com/article/290424

十二、 Spring Cloud Stream的监控

可以通过actuator来监控,可以监控到bindings、channels和health;

十三、Spring Cloud Stream异常处理

详见该手记:http://www.imooc.com/article/290435

十四、Spring Cloud Stream + RocketMQ实现分布式事务-重构生产者

1.修改发送半消息方法:
在这里插入图片描述
2.添加配置文件:
在这里插入图片描述
其余的和第六节一致,但是这里有个小坑,因为stream发送消息时无法传送arg参数,所以arg只能放在header里面传送,这就导致事务监听器只能从header中获取arg,而这时获取的arg是字符串,如果进行强转会报错,所以博主认为在传送arg时可以先将arg转换为json字符串,在监听器中再将该json字符串转换为对应的实体类即可;

十五、 Spring Cloud Stream知识盘点【必看】

详见该手记:http://www.imooc.com/article/290489

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值