首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我是如何在微人事项目中提高RabbitMQ消息可靠性的?

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

作者头像
江南一点雨
发布2020-03-06 15:44:41
6910
发布2020-03-06 15:44:41
举报
文章被收录于专栏:玩转JavaEE玩转JavaEE玩转JavaEE

今日干货

刚刚发表

查看:66666回复:666

公众号后台回复 SpringBoot,免费获取 274 页SpringBoot修炼手册。

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

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

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

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

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

首先来看消息发送确认:

再来看通过定时任务对发送失败的消息进行重试:

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 江南一点雨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档