网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 网管学堂 > 工具软件 > 金笛软件 > 分布式电子邮件系统设计  

分布式电子邮件系统设计

2007-06-13  作者:s00z00y  来源:  点评 投稿 收藏

设计目标

邮件系统在当今社会,作为一种基础通讯平台,已经不单纯是简单收发邮件,而是成为互联网各种应用的核心,承载越来越重要的应用。中国人口众多,上网人数逐年剧增,使用邮件也日益频繁。邮件系统从建成的那一天起,就面临升级的压力。如何设计一个结构良好的大容量邮件系统,对于系统稳定性、可靠性,对于日后的升级维护有着至关重要的作用。

网管网www_bitscn_com

春笛公司作为一个在邮件领域默默耕耘的公司,以小用户量的企业邮件系统立身,最终希望打造一个坚固的、高度可扩展的、容易管理维护的大容量分布式邮件系统。在设计时,我们主要考虑如下方面: 网管联盟bitsCN_com

1. 底层坚固、高度稳定。 网管联盟bitsCN@com

为保证系统的稳定可靠,需要在硬件、操作系统、核心MTA、应用层在内的每一个环节都稳定可靠才行。硬件通常选取知名品牌服务器,稳定性、可靠性都有保障,差别不大。

网管网www.bitscn.com

操作系统选择Linux或者FreeBSD, 针对邮件系统的特点,内核需要特殊调整:如打开文件数(open files)、stack size max user processes等。除了操作系统核心外,系统只加载必须的软件,屏蔽一切不不要的服务端口。

网管联盟bitsCN@com

在操作系统之上,处理smtppop3请求的MTA的稳定性、效率也至关重要。当今世界上使用比较多的是qmailpostfix, 都有分布世界各地的大批用户。相比较而言,qmail有着更好的模块化设计、更好的安全性,更高的投递效率、更可靠的队列设计。Postfix优势在于和sendmail有着很好的兼容性,部署容易,集成程度比较高,也是一个非常不错的MTA软件。 中国网管论坛bbs.bitsCN.com

应用层我们选取Apache+tomcatApache久负盛名、久经考验,tomcat背后有SUN支持,最重要的是tomcat5支持应用层负载均衡(Load Balance)。另外,java作为一种面向对象的编程语言,最能体现软件工程思想,有一系列的UML设计工具、集成开发环境、应用服务器可以选择。很多学校也开设JAVA课程,以后JAVA会像c语言那样普及,变成程序员必备的技能之一。邮件系统应用层会根据用户的反馈增加信的增值服务品种,如果基于java开发,很容找到相关人才。这样缩短开发周期、节省开发成本、降低维护难度。Google很多服务是基于java开发的。当然,java也有执行效率低的缺点,但随着硬件速度的提升,单只程序运行速度的劣势很容易被良好的设计模式优势取代。 网管网www.bitscn.com

  网管网www_bitscn_com

2. 容易管理、维护。 网管网www_bitscn_com

系统结构复杂之后,必然会带来管理维护上的麻烦。我们的设计思想是希望通过统一的一个管理控制界面,让系统管理员对每台服务器的运行状况、负载情况、流量了如指掌;同时通过一个管控界面,可以远程控制服务器启动、关闭,对服务进程远程启动、停止,对流量调配。当出现异常时,系统自动通过短信通知到管理人员的手机上。

网管网www.bitscn.com

  网管论坛bbs_bitsCN_com

3. 增加设备简单、有效。

中国网管联盟bitsCN.com

系统扩展性是衡量系统设计好坏的一个重要指标。好的系统能够通过简单添置硬件、软件做少许配置即可满足需要。我们设计的是让用户数量的增长和邮件服务器数量呈线性关系。由于PC服务器的硬件成本比较低,以一台高性能PC服务器3万元人民币计算,如果作为SMTP服务器可以支撑15万用户,作为POP服务器可以支撑30万用户,作为存储服务器,可以支撑3万用户。平均每用户为0.2元、0.1元、1元。

网管联盟bitsCN@com

在保证系统稳定可靠的同时,能够最大地降低成本。降低成本有2个途径,一是最大限度利用硬件,二是避免使用高端的存储备份设备、负载均衡设备、四层交换机等。

网管u家u.bitscn@com

网管bitscn_com

 

网管联盟bitsCN@com

网管下载dl.bitscn.com

 

网管u家u.bitscn@com

网管网www.bitscn.com

4. 具有多级权限管理,支持个人用户、企业用户、运营商等。

中国网管论坛bbs.bitsCN.com

大容量邮件系统,不仅仅是个人用户,还有企业用户。不同用户群体的需求是不同的。针对不同用户群,提供不同的服务套餐,无疑是市场营销重要手段。而这,需要有技术上做保障才行。金笛邮件应用层采用java技术,无疑是体现用户需求的最佳技术手段。

中国网管联盟bitsCN.com

作为运营商,要有丰富权限管理体系,使邮件系统的每一个管理环节严紧、严密。 中国网管联盟bitsCN.com

 

网管联盟bitsCN@com

5. 高度模块化,模块之间最小耦合。 中国网管联盟bitsCN.com

模块化程度的高低,可以体现的系统的成熟度。充分利用开源宝库中的免费资源,将优秀的开源项目经过改良、优化,会搭建出优秀的系统。不赞成完全从底层开发。 中国网管联盟bitsCN.com

模块之间通过标准接口通讯,耦合程度尽可能小,这样,即使出问题也不会影响全局。最重要的是,系统扩展性大大增强。如可以随时将病毒扫描过滤模块升级,或者将垃圾邮件过滤模块升级,其它模块无需做任何改动。 网管网www.bitscn.com

  网管联盟bitsCN@com

6. 提供与其它系统直接的接口:如计费平台、短信彩信平台、防毒网关等。 中国网管联盟bitsCN.com

作为邮件运营,计费模块很重要。良好的设计可以为灵活的计费提供原始数据。根据这些计费数据,可以制定灵活的促销手段。 网管bitscn_com

随着彩信的普及,邮件系统与彩信会逐渐融合。其它的扩展平台,如防病毒网关、反垃圾网关、反黄网关都可以灵活对接。

网管下载dl.bitscn.com

  中国网管联盟bitsCN.com

7. 应用层二次开发、部署简单方便。

网管网www_bitscn_com

邮件系统的生命力来自客户的需求,只有不断满足客户需求,推陈出新,与时俱进,才会不断有新的用户加入。根据用户需求进行二次开发,这是必不可少的。二次开发必须简单,方便。金笛邮件通过统一的二次开发接口Jindi-Mailet实现服务端应用的扩展。

网管u家u.bitscn@com

邮件系统架构上的演化和优劣比较

大容量邮件系统按照存储方式不同,大致可以分为2类:

网管u家u.bitscn@com

1.  统一存储

网管论坛bbs_bitsCN_com

邮件队列和邮件数据集中放在存储设备上。前端smtp服务器多台,POP服务器多台,随机选择一台smtp服务器或者POP服务器(这个过程一般采用DNS轮询方式完成)。选定某台服务器后,与该服务器建立连接,通过认证系统确认用户身份后,发送或者接收邮件数据。因为是统一存储,数据都是放在磁盘阵列上,通过NFS方式挂在每台服务器上。不论是通过哪台功能服务器,都可以完成邮件收发。 网管联盟bitsCN@com

        用户对Webmail的请求和smtp/pop3类似,也是通过多台机器随机选取实现负载分布。

网管u家u.bitscn@com

 

网管bitscn_com

2.  分布式存储

网管下载dl.bitscn.com

邮件数据分布在每一台服务器上,每台服务器都提供完整的邮件服务:smtp/pop3/imap/webmail/数据库。用户请求过来之后,首先查询目录服务器,验证用户身份,然后找到对应的服务器,建立连接,收取或者发送邮件。

网管bitscn_com

这种方式最大的优点是用户数量和邮件服务器数量可以保持线性增长。每台服务器支持10万邮箱,当一台服务器用户已达这个数字时,启用另外一台。可以通过管理程序在不同服务器直接迁移用户。动态管理服务器 网管联盟bitsCN_com

 

网管联盟bitsCN@com

从早期UNIX几十用户的简单邮件系统,到现在几百万、上千万邮件系统,中间经历很多变化。不妨把这些梳理一下,比较邮件系统各种技术的优劣。

网管bitscn_com

1. 一机一域、一机多域(虚拟域) 网管u家u.bitscn@com

一机一域代表用户是企业用户。一台服务器作为邮件服务器。一机多域象新网、万网,给很多企业提供邮箱。

网管u家u.bitsCN.com

所有的服务,如smtp,pop3,imap都在一台服务器上,对方邮件服务器通过查询DNS即可唯一锁定收件方服务IP,直接投递过去。 网管论坛bbs_bitsCN_com

网管u家u.bitsCN.com

  中国网管论坛bbs.bitsCN.com

DNS

中国网管联盟bitsCN.com

a.com mx 10.0.0.1

网管网www.bitscn.com

b.com mx 10.0.0.2 网管网www.bitscn.com

c.com mx 10.0.0.3

网管u家u.bitsCN.com

d.com mx 10.0.0.4 网管网www.bitscn.com

a.com 网管u家u.bitscn@com

b.com 网管u家u.bitsCN.com

b.com

网管bitscn_com

d.com

网管bitscn_com

0.0.1 网管网www_bitscn_com

0.0.2 网管bitscn_com

0.0.3/4 网管联盟bitsCN_com

网管联盟bitsCN_com

 

网管bitscn_com

这种单机邮件系统,由于受cpu、内存、硬盘的制约,用户最多一般不超过10万用户。考虑可靠性,一般采用HA,将用户数据存放磁盘阵列上,正常只有一台服务器工作,异常时自动切换到另外一台。

网管下载dl.bitscn.com

对于一般的企业用户,这种单机邮件系统已经够用。但对于大型邮件系统,这种单机系统显然无法满足。

网管联盟bitsCN_com

  网管网www_bitscn_com

 

网管联盟bitsCN@com

2. 多机一域,功能分割,集中存储。 网管下载dl.bitscn.com

邮件服务器smtppop3imapwebmail服务分布在不同的服务器上,通过NFS统一访问同一存储区域。

网管u家u.bitsCN.com

Smtp

网管论坛bbs_bitsCN_com

Pop3

网管u家u.bitscn@com

imap 网管u家u.bitscn@com

Webmail

网管网www.bitscn.com

DNS:

网管论坛bbs_bitsCN_com

       MX  smtp

网管下载dl.bitscn.com

Smtp  10.1.1.10 网管网www.bitscn.com

Pop3  10.1.1.20 网管u家u.bitscn@com

Imap  10.1.1.30

网管u家u.bitscn@com

Web   10.1.1.40 中国网管论坛bbs.bitsCN.com

NFS 网管u家u.bitsCN.com

网管网www.bitscn.com

网管论坛bbs_bitsCN_com

  中国网管论坛bbs.bitsCN.com

 

网管u家u.bitscn@com

       这种做法,实现一个简单功能分布,使每一台服务器功能单一,几台服务器各司其职,处理能力大大增强。这种简单的功能分散,实现起来比较简单,只要在不同的服务器其上部署相关服务即可,将存储服务器通过NFS mount到每一个服务器上,然后在DNS中做相关配置。

网管联盟bitsCN@com

       当用户增大到一定数量,并发量会比较大,单台smtp可以到256并发量,最多不会超过1000并发量。因此smtp很容易成为瓶颈。

网管联盟bitsCN@com

  

网管联盟bitsCN@com

3. 多机一域,负载均衡,集中存储。

中国网管联盟bitsCN.com

网管u家u.bitscn@com

中国网管联盟bitsCN.com

中国网管论坛bbs.bitsCN.com

网管网www_bitscn_com

Smtp1

网管下载dl.bitscn.com

imap 网管u家u.bitscn@com

Pop3 网管下载dl.bitscn.com

Pop3

网管下载dl.bitscn.com

Smtp2 网管网www.bitscn.com

DNS: 网管联盟bitsCN_com

MX 10 smtp1

网管网www.bitscn.com

MX 10 smtp2

网管bitscn_com

Smtp1 10.1.1.1 网管联盟bitsCN@com

Smtp2 10.1.1.2 中国网管联盟bitsCN.com

Pop3  10.1.1.3

网管bitscn_com

Pop3 10.1.1.4 网管论坛bbs_bitsCN_com

Imap 10.1.1.5

网管论坛bbs_bitsCN_com

N F S

网管论坛bbs_bitsCN_com

网管联盟bitsCN@com

       当邮件用户并发量大时,smtp很容易成为瓶颈,在系统中出现瓶颈的地方可以多增加几台服务器,然后更新DNS,通过 DNS查询解析不同的smtp服务器地址,可以使请求平均分配到每一台服务器上。 网管论坛bbs_bitsCN_com

       现在许多大容量邮件系统都脱胎于此,特点是部署容易,简单易行。缺点是当访问量增大后,数据访问全部通过NFS,也很容易出现磁盘IO瓶颈。 网管网www.bitscn.com

  中国网管论坛bbs.bitsCN.com

4. 多机一域,功能分布,存储分布。

网管下载dl.bitscn.com

该系统前端(front-end)是一个邮件交换器和目录服务器LDAP,后端是多台独立的存储服务器,通过管理中心调度,将存储服务器通过NFS挂在相应的smtp服务器或者pop服务上。

网管网www.bitscn.com

  网管网www.bitscn.com

在目录服务器上,会保存用户名、密码、smtpserverpopserverstoreserver等信息,当用户请求过来是,先查询LDAP,如果是收信,找到该用户对应的smtp, 通过直接路由方式连接smtpserver,发信;如果是收信,找到对应的pop,连接popserver下载邮件。 中国网管联盟bitsCN.com

 

网管联盟bitsCN_com

该架构解决了服务器处理瓶颈、数据存储IO瓶颈。缺点是主要的任务分发通过邮件交换器完成。一但邮件交换器出问题,整个系统都将无法运行。

网管网www.bitscn.com

       网管联盟bitsCN@com

 

Smtp

网管网www.bitscn.com

Pop3 网管联盟bitsCN_com

wmail 网管联盟bitsCN_com

wmail

中国网管联盟bitsCN.com

  网管网www.bitscn.com

存储服务器

中国网管论坛bbs.bitsCN.com

  

网管论坛bbs_bitsCN_com

 

网管联盟bitsCN@com

5. 多机一域,双层负载均衡,存储分布。 中国网管联盟bitsCN.com

为避免出现单点故障,将4改良,增加多台邮件交换器和LDAP服务器。邮件交换器通过DNS轮询实现负载均衡,LDAP服务器做成双机热备,任何一台有故障,另一台接替。存储服务器通过DRBD实现两两镜像,避免出现存储故障。

网管网www.bitscn.com

这样一套系统,可以支持千万用户级。以2000万用户为例,4000并发量测算,按照处理能力: 中国网管联盟bitsCN.com

Smtp:15万用户/台,pop30/

网管论坛bbs_bitsCN_com

需要:smtp:133台,pop66台,共计约199PC服务器 网管下载dl.bitscn.com

       这个方案的优点是没有瓶颈,可以无限扩充,缺点是需要很多存储服务器,资源上有些浪费。 网管u家u.bitscn@com

邮件交换器 网管网www.bitscn.com

LDAP 中国网管联盟bitsCN.com

Smtp

网管u家u.bitsCN.com

Smtp 网管下载dl.bitscn.com

Smtp 网管论坛bbs_bitsCN_com

Smtp

网管联盟bitsCN@com

Pop3

网管联盟bitsCN_com

wmail 网管bitscn_com

wmail

中国网管联盟bitsCN.com

 

中国网管论坛bbs.bitsCN.com

存储服务器 网管联盟bitsCN_com

邮件交换器 网管网www.bitscn.com

LDAP

网管下载dl.bitscn.com

DNS

网管bitscn_com

       MX  10  mailchanger

中国网管联盟bitsCN.com

mailchanger IN A 10.1.1.10 网管u家u.bitsCN.com

mailchanger IN A 101..1.20 网管联盟bitsCN@com

网管bitscn_com

  网管u家u.bitscn@com

    中国网管论坛bbs.bitsCN.com

 

网管bitscn_com

6. 多机一域,邮件功能服务器 网管bitscn_com

这种方案将以邮件服务器为单位,形成邮件服务器阵列。每台邮件服务器具有完整的邮件服务功能:smtp/pop3/imap/webmail等。用户认证信息集中存放于LDAP服务器,通过LDAP查找用户所在邮件服务器 网管下载dl.bitscn.com

 

网管u家u.bitsCN.com

系统管理通过集中管控界面可以控制用户数据在服务器之间进行移动、复制、删除。邮件服务器进行两两互备。

网管网www.bitscn.com

  网管论坛bbs_bitsCN_com

设置独立的过滤服务器,主要过滤病毒、垃圾邮件和黄色图片。过滤服务器与邮件服务器之间通过socket通讯,所有处理在内存完成,大大加快了处理速度。

网管u家u.bitscn@com

 

网管联盟bitsCN@com

该系统有如下特点: 中国网管论坛bbs.bitsCN.com

(1)           这种方案系统造价比较低。以每台服务15万用户计算,100服务器可以承载1500万用户。100服务器大约200万-300万人民币左右。 网管下载dl.bitscn.com

(2)           结构简单,布置方便,容易维护。

网管网www.bitscn.com

(3)           用户容量与服务器数量保持线性增长,扩容只需要增加服务器即可。

网管下载dl.bitscn.com

(4)           帐户在服务器直接动态可调,可迁移。

中国网管论坛bbs.bitsCN.com

(5)           没有瓶颈,应付突发事件的能力强。

中国网管论坛bbs.bitsCN.com

(6)           小面积的故障,不会影响整理系统。 网管u家u.bitsCN.com

 

网管论坛bbs_bitsCN_com

基于以上优点,我们推荐优先考虑此方案。 网管下载dl.bitscn.com