MQ限流应用

业务背景:
系统中需要发送邮件给用户!实现是javamail发送

问题:
某天,发现有些用户并未收到邮件
排查:

1,登录发件箱,发现如下图:大量邮件发送失败,大部分是发送频率过高导致邮箱外发功能被限制

MQ限流应用

3,查看日志发现大量报错:

SMTPSendFailedException 554 too frequently sending

解决办法:
1,查阅了官方文档,如下:
https://help.aliyun.com/knowledge_detail/36642.html
http://www.ali-exmail.cn/help/145.html
官方给出解释和解决办法:
解决办法归类就是两种:一种是降低发送频率,一种是使用邮件推送服务;很显然第二种办法需要多花钱,pass
于是乎解决办法只有一种:降低邮件发送频率

这时就利用MQ的限流功能实现这一功能:
就一个mq配置的关键参数:

prefetch_count

掌握了这个参数就明白了MQ限流如何实现。

参考文章:
[https://www.cnblogs.com/throwable/p/13834465.html

;](https://www.cnblogs.com/throwable/p/13834465.html) 花絮:
关于限流的频率,怎么控制;是5秒发送一封还是10s发送一封,可以根据自己的实际情况,影响因素较多,也可以实验出来一个最佳频率,因为这个限制频率官方也没说具体,很复杂的一系列算法,是商业机密。
总之,这个只是一种思路,并不能完全解决这个问题,但是在一定程度上解决短时间发送大量邮件而发送失败的问题。
最终的解决办法,只能使用邮件推送服务了。例如:https://www.aliyun.com/product/directmail

最终:
没过几天,发现大量邮件继续发送失败!
业务快速增长,邮件量太大。每天3000+
只能使用阿里云邮件推送服务了。

Original: https://www.cnblogs.com/hbuuid/p/14640972.html
Author: 下午喝什么茶
Title: MQ限流应用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/565743/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球