百万级 J2EE Push Mail 项目后记
昨天一个新同事向我问起了Push Mail的解决方案的整体架构和思路,滔滔不绝的讲完以后,勾起了我不少的回忆。那是在3年前发生的事情,当时这个客户(美国人)的需求就是一句话:“我要做一个Push Mail全套解决方案。” 就是这句话我们写了厚厚的一份英文需求文档。从需求分析到最后交付我们将尽用了2年左右的时间,从 系统架构、程序发开、再到系统重构、这样的经历依然 历历在目。
项目当时就我们5个人在做,可以说这5个人都是百里挑一的人选,但我们需要面对以下挑战:
1、虽然都是搞J2EE的老手,都没有接触过Push Mail这样的国外项目,所以对业务的精髓不能完全吃透,导致理解需求比较吃力。
2、在3个月内完成演示版本,证明业务可行性;9个月内构建完全产品化的系统。
3、系统需要支持大并发,海量数据,系统必须达到很高性能指标。
4、提供7X24及时服务,在第一时间解决任何技术问题。(有时差,客户在睡觉我们在工作,客户在工作,我们不能睡觉还在工作。)
5、对J2EE以外的技术只有1-2人了解。比如:分布式计算、应用服务器,数据库集群技术 和 大型系统的数据、文件 存储方案。
但是再我们所有成员的不断努力下,这些困难都被我们一一解决。
项目里面牵涉打了J2EE 领域多项技术,也算是一个难点吧,因为下列技术跨度都比较大,例如:
1、Servlet (协议请求、回送)
2、XML (协议解析)
3、JavaMail (邮件收发)
4、EJB (分布式计算)
5、ibatis(数据库操作)
6、JMS/MDB (采用分布架构中的内部通讯方式)
7、多线程和线程池 (多任务提取邮件)
8、还有很多 J2EE规范以外的技术, 例如:httpclient 网页抓取、html 解析、Office附件处理、图片压缩 、加密/解密 等等。
客户全部选择了将服务器部署在Amazon云环境上,大约总共有40几台。其中数据库采用了MySQL服务器,我们运用分库+同步技术来解决大规模存储和查询,应用服务器我们采用了Jboss。 MQ服务器采用的是Jboss的MQ。前端采用Apache和CDN做请求压力分载。操作系统采用64位的 Ubuntu 8。
口水:
1、可能还会打算再写一篇关于所有内幕技术的详细介绍的一篇文章,讲述大型 Push Mail的解决方案和如何运用J2EE技术的,以及遇到的性能瓶颈和一些致命错误。
2、上述文字的不牵涉到任何公司,任何技术团队的机要信息。纯属虚构,如有雷同,纯属巧合。
–end–

本文由J2ee企业顾问-黄毅创作,并已采用创作共用署名2.5中国大陆版许可证授权。
评论
Comment from sulong
Time 2010年07月31日 at 1:09 下午
期待你的牛作。特别是有关EJB分布式计算和分库同步技术。EJB用的哪个版本的? 3? 2?
Comment from H.E.
Time 2010年07月31日 at 6:16 下午
不是什么牛作了啊,都是一些过时的东西,现在才想起来与大家分享。
我想先写一篇关于我们在开发过程中是如何协作的过程,每个成员的分工。
以及 除了 开发人员意外的角色 例如 QA、TA、 DBA 他们是怎么和我们协作的。
to sulong :项目中EJB采用的3.0
Comment from YY
Time 2010年07月31日 at 9:27 下午
期待楼主的大作。我已经关注楼主了,楼主的一举一动我都看着在哦
Pingback from 百万级 J2EE Push Mail 项目后记2 – J2EE企业应用 顾问/咨询 Java传教士 -H.E.’s Blog
Time 2010年08月1日 at 12:59 上午
[...] 上一篇文章<百万级 J2EE Push Mail 项目后记> 说到了该项目的一些基本概况,这篇日志将讲述一些在开发过程中的与其他团队发生的故事。 [...]






Comment from Nelson
Time 2010年07月31日 at 11:18 上午
期待牛作…呵呵