业务背景:
系统中需要发送邮件给用户!实现是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+
只能使用阿里云邮件推送服务了。

最新文章

  1. SQL 关于apply的两种形式cross apply 和 outer apply(转)
  2. C# 一些知识点总结(一)_继承,多态,集合,关键字...
  3. 在 Linux 下将 PNG 和 JPG 批量互转的四种方法
  4. JavaScript小例子:复选框全选
  5. XmlPull
  6. http错误和异常处理,认证和代理设置
  7. 关键字替换排除HTML标签属性字符
  8. WinForms 使用Graphics绘制字体阴影
  9. CSS3学习之 animation 属性
  10. DeDe友情链接
  11. 基于Spring MVC的简单HelloWorld实例
  12. 小qyvlik 先看两个视频,和 QtQuick UI 问答
  13. CCF计算机认证注意事项
  14. PBKDF2WithHmacSHA1算法
  15. cesium编程入门(五)绘制形状
  16. Dubbo 源码分析 - 服务引用
  17. spring cloud 配置文件application.yml和bootstrap.yml 的定位,区别和联系总算是有一点明白了
  18. python箱型图
  19. 【python基础】利用pandas处理Excel数据
  20. 剖析Elasticsearch集群系列之一:Elasticsearch的存储模型和读写操作

热门文章

  1. linux 客户机挂载vitualbox共享文件夹
  2. P4321-随机漫游【状压dp,数学期望,高斯消元】
  3. MySQL8.0允许外部访问
  4. Data Management Tools(数据管理工具)《一》
  5. dubbo-admin的使用
  6. VMware中Linux虚拟机与Windows主机共享文件夹
  7. MyBatis 中实现SQL语句中in的操作 (11)
  8. 工作3年的Java程序员,轻松拿到阿里P6Offer,只因为他搞明白了Redis这几个问题!!
  9. 使用ShardingSphere-JDBC完成Mysql的分库分表和读写分离
  10. 对cpu与load的理解及线上问题处理思路