我是如何在微人事项目中提高RabbitMQ消息可靠性的?

hello 各位小伙伴大家好,松哥在最新版的微人事中集成进来了消息中间件 RabbitMQ,结合 RabbitMQ 搭建了独立的邮件服务器 mailserver。

当 hr 向系统中录入一个员工时,录入成功后,系统会自动向消息中间件 RabbitMQ 发送一条消息,这条消息包含了新入职员工的基本信息,然后 mailserver 则专门用来从 RabbitMQ 上消费消息,根据收到的消息,自动的发送一封入职欢迎邮件。

由于邮件发送是一个耗时操作,在旧版微人事里边我当时为了省事直接上的多线程,但是这种方式不易扩展,无法解耦,用过就知道这有多么不方便了。引入 RabbitMQ 之后,有效的实现了系统的解耦,在未来你可能有更多的地方需要发送邮件、短信等,把这些邮件发送、短信发送的服务拎出来做成单独的服务,扩展起来更加方便。

RabbitMQ 虽然用着方便,有很多优势,但是也带来了很多问题,例如网络抖动怎么办?如何确保消息的可靠性?在理想的环境下这些问题都不存在,但是在复杂的生产环境中,什么都是有可能的,所以,我们要通过技术手段去处理这些问题。

松哥之前发过一篇如何在 Spring Boot 中解决 RabbitMQ 可靠性的问题的文章,但是代码排版不是很少,很多小伙伴表示看的脑瓜疼,于是,周末抽空录了两个视频教程,代码直接应用在微人事(https://github.com/lenve/vhr)项目上,手把手教大家这个问题如何解决。

视频讲解链接地址

好了,通过这两个视频,主要向大家介绍了如何确保消息发送的可靠性,至于消息消费的可靠性,松哥明天来和大家捋一捋,如果小伙伴们对完整的微人事项目视频感兴趣,可以看看这篇文章【微人事视频教程】。

好了,视频中涉及到的所有代码包括数据库脚本,都已经提交到 GitHub 和 Gitee 上了,地址分别是:https://github.com/lenve/vhrhttps://gitee.com/lenve/vhr ,小伙伴们可以下载参考。

喜欢这篇文章吗?扫码关注公众号【江南一点雨】【江南一点雨】专注于 SPRING BOOT+微服务以及前后端分离技术,每天推送原创技术干货,关注后回复 JAVA,领取松哥为你精心准备的 JAVA 干货!

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×