MQ限流应用
2024-10-19 12:46:56
业务背景:
系统中需要发送邮件给用户!实现是javamail发送
问题:
某天,发现有些用户并未收到邮件
排查:
1,登录发件箱,发现如下图:大量邮件发送失败,大部分是发送频率过高导致邮箱外发功能被限制
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花絮:
关于限流的频率,怎么控制;是5秒发送一封还是10s发送一封,可以根据自己的实际情况,影响因素较多,也可以实验出来一个最佳频率,因为这个限制频率官方也没说具体,很复杂的一系列算法,是商业机密。
总之,这个只是一种思路,并不能完全解决这个问题,但是在一定程度上解决短时间发送大量邮件而发送失败的问题。
最终的解决办法,只能使用邮件推送服务了。例如:https://www.aliyun.com/product/directmail最终:
没过几天,发现大量邮件继续发送失败!
业务快速增长,邮件量太大。每天3000+
只能使用阿里云邮件推送服务了。
最新文章
- SQL 关于apply的两种形式cross apply 和 outer apply(转)
- C# 一些知识点总结(一)_继承,多态,集合,关键字...
- 在 Linux 下将 PNG 和 JPG 批量互转的四种方法
- JavaScript小例子:复选框全选
- XmlPull
- http错误和异常处理,认证和代理设置
- 关键字替换排除HTML标签属性字符
- WinForms 使用Graphics绘制字体阴影
- CSS3学习之 animation 属性
- DeDe友情链接
- 基于Spring MVC的简单HelloWorld实例
- 小qyvlik 先看两个视频,和 QtQuick UI 问答
- CCF计算机认证注意事项
- PBKDF2WithHmacSHA1算法
- cesium编程入门(五)绘制形状
- Dubbo 源码分析 - 服务引用
- spring cloud 配置文件application.yml和bootstrap.yml 的定位,区别和联系总算是有一点明白了
- python箱型图
- 【python基础】利用pandas处理Excel数据
- 剖析Elasticsearch集群系列之一:Elasticsearch的存储模型和读写操作
热门文章
- linux 客户机挂载vitualbox共享文件夹
- P4321-随机漫游【状压dp,数学期望,高斯消元】
- MySQL8.0允许外部访问
- Data Management Tools(数据管理工具)《一》
- dubbo-admin的使用
- VMware中Linux虚拟机与Windows主机共享文件夹
- MyBatis 中实现SQL语句中in的操作 (11)
- 工作3年的Java程序员,轻松拿到阿里P6Offer,只因为他搞明白了Redis这几个问题!!
- 使用ShardingSphere-JDBC完成Mysql的分库分表和读写分离
- 对cpu与load的理解及线上问题处理思路