消息中间件,我一直认为是对开发人员来说非常重要的一部分知识,但很少有人能把它精通。多数人都是为了面试或者是应付工作,学了很多遍,学了一些通用的零散的理论,而实际使用中,只会最基本的几个配置、几个命令。学了像是没学一样。时间久了,甚至有学它没什么用的感觉。
其实理解消息中间件,对理解分布式非常有帮助。消息中间件学好了,甚至可以改造成分布式事务框架。
我的好朋友Jacquie跟我说,同学们处在一个矛盾的情形下,一方面觉得好多课程里用到了MQ,都讲了几节,都学烂了,不想听了。另一方面,在专门讲MQ的专题课内,又觉得讲的理论化、脱离实际,用不到自己的工作中去。我们俩一合计,一起策划了这门课。
这就是我们俩的初心。
课程上线后,作为一个“长尾却刚需的产品”,原本只是想默默打磨质量,没想过一炮走红,很匠人的心态去做。
没想到却因为广受好评成为同期中非常有个性的一门课程,所以Jacquie她又代表慕课网,找到我来回访。
有幸受访,我也又有了许多新收获。希望也可以对看文章的你有所帮助~
短短一月,还跨越了十一长~~~假,课程却无论在课程评论区还是在QQ群内,都广受好评,而且都是“眼前一亮”“wow~ ⊙o⊙”的感觉,我来从几位同学的好评的角度,提出一些问题,我们一起做个复盘吧~
好的
Jacquie:最初是怎么想到使用项目迭代的方式的,怎么选取设计的迭代点?
RabbitMQ相信大家多少都用过一些,不过掌握程度参差不齐,很多同学还在用底层的Rabbit Client当作RabbitMQ客户端。所以这门课就想让同学们掌握更高级易用的客户端:Spring AMQP。而且在架构设计上,Spring AMQP的底层也是使用了Rabbit Client,所以一下子就想到了多次迭代的方式讲解Java项目引入RabbitMQ的方法:
学会消息的收发:使用Rabbit Client实现RabbitMQ的基本应用,
实现RabbitMQ的高级特性:使用Rabbit Client实现例如消息确认、消息返回等
使用Spring AMQP作为客户端,将项目深入整合进SpringBoot体系中
改造RabbitMQ本身,学习RabbitMQ集群的搭建与使用
开发基于Spring AMQP的RabbitMQ分布式事务框架。
这几个层次环环相扣,步步为营,完全讲透了RabbitMQ的高级工程实践。
Jacquie:项目从哪些维度体现了“消息事件驱动架构”,“订单状态机”是怎么实现的
我们的实战项目是一个外卖订单系统,基于长时间的生产实战,我们将订单状态机状态机作为了订单系统的核心,订单创建过程有如下几个状态:
创建中
商户已确认
骑手已确认
已结算
订单创建成功
订单失败
这就是订单状态机,订单必然处于上述的某个状态,而订单每次状态的变化,都需要消息的触发,这也体现了“消息事件驱动架构”的设计思想。比如:
订单处于创建中状态时,如果收到了商户微服务的确认消息,订单状态就转为商家已确认
Jacquie:
怎么在项目的基础上,改成SpringBoot Starter
在课程的最后一章,我们和同学们一起开发实现了基于RabbitMQ的分布式事务框架。框架打包成jar包,可以方便地引入任何需要使用RabbitMQ的SpringBoot应用中。而且经过同学的提醒,我们的分布式事务框架可以方便地改造成SpringBoot Starter,真正变成SpringBoot组件级别的框架。只需要下面的几步:
将我们的分布式事务框架改名,改为rabbitmq-plus-starter项目
创建一个ConfigurationProperties用于保存配置信息(项目中本来使用了@Values注解,改成ConfigurationProperties更方便集中管理)
创建一个AutoConfiguration,引用定义好的配置信息;在AutoConfiguration中实现所有starter应该完成的操作,并且把这个类加入spring.factories配置文件中进行声明
打包项目,之后在一个SpringBoot项目中引入该项目依赖,然后就可以使用该starter了
同学们在学习完课程后不妨试一下,更能提高自己对Spring Boot框架的理解。
Jacquie:
从个人角度看,为了这个课程的生产实践落地,做了哪些努力
一个课程的制作和上线是一个系统工程,虽然我已在线上和线下已经有很多讲课经验,但是第一次和慕课网合作实战课程,还是有些压力。为了更好的跟大家呈现课程,我们选择了一个项目多次迭代的方式,循序渐进地将技术的来龙去脉展现出来:Java客户端基础入门->RabbitMQ高级特性->SpringBoot深度整合->RabbitMQ集群实战->RabbitMQ分布式事务实战。经过了这个路线,我相信同学们对于RabbitMQ的工程实战已经了然于胸了。在最为关键的分布式事务实战部分,为了让同学们对框架结构和业务流程有更深刻的认识,我们绘制了详细的流程图:
课程的优惠马上就要结束了,再次向大家推荐我们课程,相信你会有很大的收获。
PS:如果你看到这篇文章时不小心错过了优惠期,不要失望,你也可以加入购物车,等待马上到来的双十一。