大型JavaMail网站Mailinator架构(Linux+Tomcat+Java)
采用Javamail和Java技术构建的Mailinator很有趣是一个免费、不需要进行注册就可以收邮件的平台,称之为“一次性电子邮件服务”。你在一个网站注册时并不想提交你的邮件地址,因为你担心将来会受到垃圾邮件的骚扰,但你此时又必须在这个网站上注册输入你的邮件地址。
此时你可以使用Mailinator来为你服务。但 Mailinator 他不是垃圾邮件制造器。比如:发送邮件到javabloger@Mailinator.com,该邮箱就会自动创建。
访问Mailinator网站 输入你的邮箱就能进入浏览邮件了,注意:Mailinator只是个临时邮箱,作用就是防止垃圾邮件对你的骚扰,一次只能保持10封邮件,不支持附件,单个邮件限120K以内,任何人都可以浏览,不要用来存在重要的邮件。
登陆网址:http://mailinator.com 经过测试对中文支持的非常友好,如图所示:

下面我们来看看这个替身英雄
系统平台
操作系统:Linux
应用服务:Tomcat
语言环境:Java
统计资料
2005年 28068.0万封
2006年 450740000 封
2007年将处理,估计为1.29亿封。峰值速度650万封电子邮件/日, 4513/分钟 ,75/秒。
开始是Mailinator 运行在AMD 2GHz的Athlon处理器,1GB内存 ,普通80G IDE 硬盘 。
即使是在不断的攻击和垃圾邮件高峰负荷,Mailinator无人值守运行几个月,也很少有邮件丢失。
Mailinator 老的架构
收到邮件保存在磁盘上。
然后采用Java 去读取磁盘上邮箱中的邮件。
然后,系统把所有电子邮件加载到内存中。
但是,一旦内存中达到 20,000电子邮件对机器运行就产生了很大的瓶颈。。。。。。。。。。。
Mailinator 新的架构
采用了 DOM 和 AOP技术,使用XML对数据进行归档整理,运行AOP便于对将来的扁平扩展。
接收电子邮件后,解析解析邮件,进行DOM后并将其数据存储到内存中。尽量减轻磁盘负载。
采用了多种过滤手段,每封邮件通过过滤后,并存储在RAM中。
比如:过多的邮件从一个IP发出进行屏蔽
超过120k的电子邮件直接过滤,这样可节省内存。
每个收件箱仅限于10电子邮件。
电子邮件被写入磁盘时,系统性能已经下降,因此在轮询启动时加载信息,将2个工作交错开来,减少瓶颈。
系统开启300个线程同时工作,据说一直没有出现问题。
将近期内收到的邮件压缩在RAM中,需要阅读的时候才进行解压,节省内存空间。
从这一案例我们能看出,Mailinator 系统架构的优化完全是根据自己的业务规则和需求场景来进行。
并不是一味盲目的更换软件,不断添加服务器硬件,Mailinator而是采取了多种策略,让数据更灵活,让数据更靠近CPU。
我(H.E.)相信只有了解具体的需求才能达到最大程度的优化。
–end–

本文由J2ee企业顾问-黄毅创作,并已采用创作共用署名2.5中国大陆版许可证授权。





