一种分布式电子邮件系统及其服务方法

文档序号:7928603阅读:223来源:国知局
专利名称:一种分布式电子邮件系统及其服务方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式电子邮件系统及其服务技术。
背景技术
电子邮件系统可对用户提供的基本电子邮件服务包括支持客户端软件登录执 行发送、接收电子邮件操作,该服务要求电子邮件系统实现与用户之间基于SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的会话过程,可以称为SMTP服务;支持
客户端软件登陆执行提取电子邮件操作,该服务要求电子邮件系统实现与用户之间基于 P0P3(Post Office Protocol 3,邮局协议第3版)的会话过程,可以称为P0P3服务;支持 用户通过Web浏览器访问,并执行阅读、编辑、发送电子邮件等操作,可以称为WebMail服 务。分布式电子邮件系统是将电子邮件服务部署在分布式网络环境中,以提高处理电子邮 件的吞吐率。 现有技术中提供了一种分布式电子邮件系统,由主控服务器、中心邮件服务器、邮 件服务器构成了三层分布式邮件系统架构,该系统可基于单一公网IP地址实现多域邮件 的收发。现有分布式邮件系统将服务节点和存储节点按照用户账户进行严格的划分,即通 过用户账户将用户与服务节点和存储节点进行绑定,其中,一台邮件服务器可以同时具备 服务节点和存储节点两种功能,或者任一功能。
现有分布式电子邮件系统,存在以下问题 将用户与服务节点绑定,会导致各服务节点需要提供的电子邮件服务负载不均 衡;将用户与存储节点绑定,会导致各存储节点的存储利用率较低,同时基于本地文件系统 的存储方式,如果不采用RAID (Redundant Array oflnd印endent Disk,独立磁盘冗余阵 列)技术进行冗余备份,则存储可靠性较低,如果采用RAID技术或其他专用存储设备,则成 本较高。

发明内容
本发明提供一种分布式电子邮件系统及其服务方法,用以实现系统中服务节点的 负载均衡,提升系统中存储节点的存储利用率。 本发明提供的分布式电子邮件系统,包括由多个存储节点组成的分布式存储子系 统、负载均衡服务器和多个服务节点,其中 所述分布式存储子系统,包括各存储节点,在各存储节点中存储用户的身份信息 和邮件信息; 所述负载均衡服务器,用于接收用户发送的电子邮件服务请求,根据各服务节点 当前的负载信息和设定的负载均衡策略确定为所述用户提供电子邮件服务的服务节点,并 将所述电子邮件服务请求转发给确定出的服务节点; 所述服务节点,用于在接收到负载均衡服务器转发的电子邮件服务请求时,访问 分布式存储子系统获取用户的身份信息,根据获取到的身份信息对所述用户进行身份认证,并在用户通过身份认证之后,为所述用户提供相应的电子邮件服务。
本发明提供的一种分布式电子邮件系统的服务方法,包括 负载均衡服务器接收用户发送的电子邮件服务请求,根据各服务节点当前的负载 信息和设定的负载均衡策略确定为所述用户提供电子邮件服务的服务节点,并将所述电子 邮件服务请求转发给确定出的服务节点; 所述服务节点在接收到负载均衡服务器转发的电子邮件服务请求时,访问分布式 存储子系统获取用户的身份信息,根据获取到的身份信息对所述用户进行身份认证,并在 用户通过身份认证之后,为所述用户提供相应的电子邮件服务,其中,分布式存储子系统包 括各存储节点,在各存储节点中存储用户的身份信息和邮件信息。 本发明提供的分布式电子邮件系统,用户与服务节点和存储节点不进行绑定,通 过负载均衡服务器按照负载均衡策略将用户的电子邮件服务请求转发到合适的服务节点 上,实现了各服务节点的负载均衡;多个存储节点组成了分布式存储子系统,在各存储节点 中存储用户的身份信息和邮件信息,充分利用了存储节点的存储空间,提升了系统中存储 节点的存储利用率。


图1为本发明实施例中分布式电子邮件系统的结构框图; 图2为本发明实施例中分布式电子邮件系统的另一种结构框图; 图3为本发明实施例中分布式电子邮件系统的网络架构示意图; 图4为本发明实施例中分布式电子邮件系统的服务方法流程图, 图5为本发明实施例中分布式电子邮件系统发送电子邮件的方法流程图。
具体实施例方式
本发明实施例针对现有分布式电子邮件系统存在的问题,提供了一种基于云计算 平台搭建的分布式电子邮件系统,用以实现系统中服务节点的负载均衡,提升系统中存储 节点的存储利用率。云计算(Cloud Computing)是分布式处理(Distributed Computing)、 并行处理(Parallel Computing)和网格计算(GridComputing)的发展和实现。云计算的 基本原理是使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器上,使得 能够根据需求访问计算机和存储系统。云计算通过网络将庞大的运算处理程序分拆成多个 较小的子程序,而后将处理结果交由一组计算机进行汇总、运算和分析,最终将结果返回给 用户。 本发明实施例中,基于云计算平台搭建的分布式电子邮件系统,具备如下特点
用户与服务节点和存储节点不进行绑定,相互之间是独立的,同一物理节点(邮 件服务器)在逻辑上可以同时具备服务节点和存储节点的功能; 同质化部署各种电子邮件服务,包括SMTP、 P0P3、 WebMail服务等,即在云计算平 台中任何服务节点均可部署一种或者多种电子邮件服务; 分布式存储各用户的身份信息和邮件信息,其中邮件信息包括邮件索引信息和电 子邮件的正文数据等等,所有用户的身份信息和邮件信息在各存储节点中均衡存储,多个 存储节点组成分布式存储子系统,各存储节点是全局可见的,使得分布式存储子系统对于各服务节点具有统一的名字空间和一致的视图。 如图1所示,本发明实施例提供的分布式电子邮件系统,包括由多个存储节点100组成的分布式存储子系统101,负载均衡服务器102和多个服务节点103,其中
分布式存储子系统101,包括各存储节点100,各存储节点100中存储用户的身份信息和邮件信息; 其中,分布式存储子系统101对于各服务节点103具有统一的名字空间和一致的视图。 负载均衡服务器102,用于接收用户发送的电子邮件服务请求,根据各服务节点103的负载信息和设定的负载均衡策略确定为用户提供电子邮件服务的服务节点,并将该电子邮件服务请求转发给确定出的服务节点103 ; 负载均衡服务器102按照预先配置的负载均衡策略,将来自用户的电子邮件服务请求转发给合适的服务节点103,使各服务节点103的负载趋于均衡;
本发明实施例中,可以采用最小链接(Least Connection)、加权(Priority)最小链接、轮询(Round Robin)、比率(Ratio)、最快模式(Fastest)、观察模式(Observed)、预测模式(Predictive)、动态性能分配(Dynamic Ratio-APM)、动态服务器补充(DynamicServer Act)等多种负载均衡策略; 针对电子邮件服务的特点,较佳的,可以采用最小链接负载均衡策略,对应的服务节点当前的负载信息为当前的链接用户数量,服务节点为每一个链接用户启动一个应用进程,链接用户数量与服务节点上当前的应用进程数量一致。负载均衡服务器102根据各服务节点103当前的链接用户数量,确定链接用户数量最小的服务节点103为该用户提供电子邮件服务,从而确定出合适的服务节点,满足负载均衡的要求。 服务节点103,用于在接收到负载均衡服务器102转发的电子邮件服务请求时,访问分布式存储子系统101获取用户的身份信息,根据获取到的身份信息对该用户进行身份认证,并在用户通过身份认证后,为该用户提供相应的电子邮件服务; 服务节点103为用户提供的电子邮件服务与现有技术中一致,包括SMTP、 P0P3、WebMail服务等,从功能上来说,用户可以接收电子邮件、读取电子邮件、发送电子邮件、删除电子邮件等等,在为该用户提供接收电子邮件、读取电子邮件和删除电子邮件等服务时,还需要访问分布式存储子系统101获取用户的邮件信息。 分布式存储子系统中存储的各用户的身份信息和邮件信息均具有可配置数量的多个副本,不同的副本保存在不同的存储节点上。当某一存储节点发生故障导致存储的信
息丢失或者损坏时,其它存储节点上的副本仍可正常访问,使得整个分布式存储子系统可以被正常访问。此外,分布式存储子系统可以将发生故障的存储节点上存储的信息在其它存储节点上恢复,以保证副本数量维持不变,使得分布式存储子系统具有很高的存储可靠性。其中,任一存储节点都可能存储身份信息和邮件信息,或者只存储身份信息,或者只存储邮件信息。 服务节点访问分布式存储子系统时,通过分布式存储子系统提供的统一接口进入,由于分布式存储子系统对各服务节点具有统一的名字空间和一致的视图,因此各服务节点上部署的各种电子邮件服务与其所处的物理位置无关,各服务节点上部署的电子邮件服务软件可以完全相同。服务节点与部署在同一物理节点上的存储节点在逻辑上完全独立。当来自用户的电子邮件服务请求增多或电子邮件服务相关信息的存储需求增大时,可
相应增加服务节点或存储节点的数量,即扩容;反之,可相应减少服务节点或存储节点的数
量,即减容。扩容和减容都只需要简单的增加和减少服务节点/存储节点。 如图2所示,本发明实施例在分布式电子邮件系统中还可以部署管理节点201,管
理节点可以在一个单独的物理节点上实现,也可以与存储节点和服务节点设置在同一物理
节点中,其中 管理节点201,用于周期性向各服务节点103发送心跳查询请求,根据各服务节点103返回的心跳查询响应判断各服务节点103是否正常工作,并在判断出存在非正常工作的服务节点时,将非正常工作的服务节点需要提供的电子邮件服务迁移到正常工作的服务节点上。 较佳的,管理节点201,还用于对非正常工作的服务节点进行修复,其中,对非正常工作的服务节点可以采取多种修复方式,例如为非正常工作的服务节点重新配置IP地址等参数,控制非正常工作的服务节点重新启动,等等。 通过管理节点对非正常工作的服务节点上电子邮件服务的迁移,以及对非正常工作的服务节点进行及时有效的修复,有利于维护系统稳定。 如图3所示,为本发明实施例中分布式电子邮件系统的网络架构示意图,系统中包括多个负载均衡服务器和多个物理节点(邮件服务器),一个物理节点可能同时具备服务节点、存储节点和管理节点的功能。用户通过用户终端发送电子邮件服务请求,电子邮件服务请求再通过负载均衡服务器转发到服务节点上,由服务节点为用户提供相应的电子邮件服务。服务节点上可能部署一种或多种电子邮件服务,包括SMTP、P0P3、WebMail服务等。
本发明实施例提供的分布式电子邮件系统,用户与服务节点和存储节点不进行绑定,通过负载均衡服务器按照设定的负载均衡策略将用户的电子邮件服务请求转发到合适的服务节点上,实现了各服务节点的负载均衡; 多个存储节点组成了分布式存储子系统,在各存储节点中均衡存储所有用户的身
份信息和邮件信息,充分利用了存储节点的存储空间,提升了系统中存储节点的存储利用率; 同时,分布式存储子系统对于各服务节点具有统一的名字空间和一致的视图,方便了各服务节点对分布式存储子系统的访问; 通过在分布式电子邮件系统中增加管理节点,各用户的身份信息和邮件信息采用多个副本的存储方式,以及对发生故障的存储节点上存储的信息的恢复,可以有效提升分
布式电子邮件系统的可靠性,增强系统的稳定性。 基于同一技术构思,本发明实施例提供了一种分布式电子邮件系统的服务方法,如图4所示,包括 S401、负载均衡服务器接收用户发送的电子邮件服务请求,根据各服务节点当前的负载信息和设定的负载均衡策略确定为用户提供电子邮件服务的服务节点,并将电子邮件服务请求转发给确定出的服务节点; 较佳的,设定的负载均衡策略为最小链接负载均衡策略,相应的,服务节点当前的负载信息为当前的链接用户数量,则负载均衡服务器根据各服务节点当前的链接用户数量和设定的最小链接负载均衡策略,确定当前的链接用户数量最小的服务节点为用户提供电子邮件服务; S402、服务节点在接收到负载均衡服务器转发的电子邮件服务请求时,访问分布 式存储子系统获取用户的身份信息,根据获取到的身份信息对该用户进行身份认证,如果 用户通过身份认证,则继续执行S403,否则,流程结束; 其中,分布式存储子系统在各存储节点中存储用户的身份信息和邮件信息,并且
对于各服务节点具有统一的名字空间和一致的视图; S403、服务节点为该用户提供相应的电子邮件服务; 服务节点按照现有电子邮件服务流程为用户提供各种电子邮件服务,根据需要可 能会访问分布式存储子系统,例如接收电子邮件的服务,读取电子邮件的服务,删除电子邮 件的服务等,在完成为用户提供的电子邮件服务后,服务节点将通知用户,流程结束;
如果用户后续发起电子邮件服务请求,则重复执行S403,直至完成为用户提供的 所有电子邮件服务后,流程结束。 现有技术中,服务节点在为用户提供发送电子邮件的服务时,如果用户输入数据 指令(DATA),则服务节点会将用户后续输入的数据信息作为待发送电子邮件的正文数据 (即内容)缓存在服务器端的内存缓冲区中,直至用户输入设定的结束符(例如"."行作为 结束符),服务节点认为正文数据输入完成,则服务节点向用户返回确认消息(+OK),指示 待发送电子邮件的正文数据被成功接收。如果在向用户返回确认消息(+0K)之后至将该待 发送电子邮件成功发送之前的一段时间内服务节点崩溃,则服务器端内存缓冲区中缓存的 正文数据会丢失,待发送电子邮件无法正常发送,用户也无法获知该丢信情况的发生,导致 电子邮件的发送可靠性较低。 针对现有技术中服务节点在提供发送电子邮件的服务时,存在的发送可靠性较低 的问题,本发明实施例提供了一种发送电子邮件的方法,应用该分布式电子邮件系统。如果 负载均衡服务器接收到用户发送的电子邮件发送请求,并将该电子邮件发送请求转发给服 务节点,并且用户通过了身份认证;或者,服务节点为该用户提供相应的电子邮件服务过程 中,用户后续直接向服务节点发起了电子邮件发送请求,则如图5所示,包括如下步骤
S501、服务节点将用户输入的待发送电子邮件的正文数据缓存在内存缓冲区中, 并将该正文数据插入分布式存储子系统的待发送电子邮件队列中; 用户在数据指令(DATA)之后和设定的结束符之前输入的数据内容即为待发送电
子邮件的正文数据,本发明实施例中,服务节点不仅需要将该正文数据缓存在内存缓冲区
中,还需要将该正文数据插入分布式存储子系统的待发电子邮件队列中; 其中,待发送电子邮件队列在分布式存储子系统中以文件夹的形式存在,每个待
发送电子邮件的正文数据作为待发电子邮件队列的一个元素,每个元素对应文件夹内的一
个文件; S502、服务节点在将待发送电子邮件的正文数据插入待发送电子邮件队列之后, 向用户返回正文数据被成功接收的确认消息(+0K); S503、服务节点在确认待发送电子邮件被成功发送之后,将待发送电子邮件的正 文数据从待发送电子邮件队列中删除。 为了提升分布式电子邮件系统的服务可靠性,该方法还包括 管理节点周期性向各服务节点发送心跳查询请求,根据各服务节点返回的心跳查询响应判断各服务节点是否正常工作,在判断出存在非正常工作的服务节点时,将非正常 工作的服务节点需要提供的电子邮件服务迁移到正常工作的服务节点上;进一步,管理节 点还可以对非正常工作的服务节点进行修复。 采用本发明实施例提供的发送电子邮件的方法,解决了向用户返回确认消息 (+0K)之后至将该待发送电子邮件成功发送之前的一段时间内,由于服务节点崩溃导致的 丢信情况的发生。正常情况下,待发送电子邮件成功发送之后,服务节点从待发送电子邮件 队列中删除待发送电子邮件的正文数据。如果服务节点在向用户返回确认消息(+0K)之前 服务节点崩溃,用户由于收不到确认消息(+OK),即可得知电子邮件发送失败;如果在向用 户返回确认消息(+0K)之后至将该待发送电子邮件成功发送之前,服务节点崩溃,则该待 发送电子邮件的正文数据由于存储在待发送电子邮件队列中,则不会丢失,后续管理节点 可以将该发送电子邮件的服务迁移到正常工作的服务节点上,实现该待发送电子邮件的正 常发送,提升了电子邮件的发送可靠性。 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
9
权利要求
一种分布式电子邮件系统,其特征在于,包括由多个存储节点组成的分布式存储子系统、负载均衡服务器和多个服务节点,其中所述分布式存储子系统,包括各存储节点,各存储节点中存储用户的身份信息和邮件信息;所述负载均衡服务器,用于接收用户发送的电子邮件服务请求,根据各服务节点当前的负载信息和设定的负载均衡策略确定为所述用户提供电子邮件服务的服务节点,并将所述电子邮件服务请求转发给确定出的服务节点;所述服务节点,用于在接收到负载均衡服务器转发的电子邮件服务请求时,访问分布式存储子系统获取用户的身份信息,根据获取到的身份信息对所述用户进行身份认证,并在用户通过身份认证之后,为所述用户提供相应的电子邮件服务。
2. 如权利要求1所述的系统,其特征在于,所述服务节点当前的负载信息为所述服务 节点当前的链接用户数量,所述设定的负载均衡策略为最小链接负载均衡策略;以及所述负载均衡服务器根据各服务节点当前的链接用户数量和设定的最小链接负载均 衡策略,确定当前的链接用户数量最小的服务节点为所述用户提供电子邮件服务。
3. 如权利要求1或2所述的系统,其特征在于, 所述分布式存储子系统,还用于存储待发送电子邮件队列;以及所述服务节点,还用于在为用户提供发送电子邮件的服务时,将用户输入的待发送电 子邮件的正文数据缓存在内存缓冲区中,并将所述正文数据插入分布式存储子系统的待发 送电子邮件队列中;并在将所述正文数据插入待发送电子邮件队列之后,向用户返回正文 数据被成功接收的确认消息。
4. 如权利要求3所述的系统,其特征在于,所述服务节点,还用于在确认所述待发送电子邮件被成功发送之后,将所述正文数据 从待发送电子邮件队列中删除。
5. 如权利要求3所述的系统,其特征在于,还包括管理节点,用于周期性向各服务节点发送心跳查询请求,根据各服务节点返回的心跳 查询响应判断各服务节点是否正常工作,并在判断出存在非正常工作的服务节点时,将非 正常工作的服务节点需要提供的电子邮件服务迁移到正常工作的服务节点上。
6. 如权利要求5所述的系统,其特征在于, 所述管理节点,还用于对非正常工作的服务节点进行修复。
7. 如权利要求5所述的系统,其特征在于,所述管理节点、存储节点和服务节点设置在 同一物理节点中。
8. 如权利要求l所述的系统,其特征在于,所述分布式存储子系统,还用于根据配置的副本数量,将每一个用户的身份信息和邮 件信息备份存储在对应数量的存储节点上。
9. 如权利要求7所述的系统,其特征在于,所述分布式存储子系统,还用于将发生故障的存储节点上所存储的身份信息和/或邮 件信息在其它存储节点上恢复。
10. —种分布式电子邮件系统的服务方法,其特征在于,包括负载均衡服务器接收用户发送的电子邮件服务请求,根据各服务节点当前的负载信息和设定的负载均衡策略确定为所述用户提供电子邮件服务的服务节点,并将所述电子邮件 服务请求转发给确定出的服务节点;所述服务节点在接收到负载均衡服务器转发的电子邮件服务请求时,访问分布式存储 子系统获取用户的身份信息,根据获取到的身份信息对所述用户进行身份认证,并在用户 通过身份认证之后,为所述用户提供相应的电子邮件服务,其中,分布式存储子系统包括各 存储节点,在各存储节点中存储用户的身份信息和邮件信息。
11. 如权利要求io所述的方法,其特征在于,所述服务节点当前的负载信息为所述服务节点当前的链接用户数量,所述设定的负载均衡策略为最小链接负载均衡策略;所述负载均衡服务器根据各服务节点当前的负载信息和设定的负载均衡策略确定为所述用户提供电子邮件服务的服务节点,具体包括所述负载均衡服务器根据各服务节点当前的链接用户数量和设定的最小链接负载均衡策略,确定当前的链接用户数量最小的服务节点为所述用户提供电子邮件服务。
12. 如权利要求10或11所述的方法,其特征在于,还包括所述服务节点在为用户提供发送电子邮件的服务时,将用户输入的待发送电子邮件的 正文数据缓存在内存缓冲区中,并将所述正文数据插入分布式存储子系统的待发送电子邮 件队列;所述服务节点在将所述正文数据插入待发送电子邮件队列之后,向用户返回正文数据 被成功接收的确认消息。
13. 如权利要求12所述的方法,其特征在于,还包括所述服务节点在确认所述待发送电子邮件被成功发送之后,将所述正文数据从待发送 电子邮件队列中删除。
14. 如权利要求12所述的方法,其特征在于,还包括管理节点周期性向各服务节点发送心跳查询请求,根据各服务节点返回的心跳查询响 应判断各服务节点是否正常工作,并在判断出存在非正常工作的服务节点时,将非正常工 作的服务节点需要提供的电子邮件服务迁移到其它服务节点上。
全文摘要
本发明公开了一种分布式电子邮件系统及其服务方法,用以实现系统中服务节点的负载均衡,提升系统中存储节点的存储利用率。分布式电子邮件系统包括由多个存储节点组成的分布式存储子系统,各存储节点中存储用户的身份信息和邮件信息;负载均衡服务器,用于接收用户发送的电子邮件服务请求,并根据各服务节点当前的负载信息和设定的负载均衡策略确定为用户提供电子邮件服务的服务节点,并将电子邮件服务请求转发给确定出的服务节点;服务节点,用于在接收到电子邮件服务请求时,访问分布式存储子系统获取用户的身份信息,根据获取到的身份信息对用户进行身份认证,并在用户通过身份认证之后,为用户提供相应的电子邮件服务。
文档编号H04L12/58GK101753478SQ20081023925
公开日2010年6月23日 申请日期2008年12月5日 优先权日2008年12月5日
发明者周文辉, 罗治国, 齐骥 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1