首頁(yè)>>廠(chǎng)商>>短信平臺廠(chǎng)商>>北京春笛

分布式電子郵件系統設計

2004/10/20

設計目標

  郵件系統在當今社會(huì ),作為一種基礎通訊平臺,已經(jīng)不單純是簡(jiǎn)單收發(fā)郵件,而是成為互聯(lián)網(wǎng)各種應用的核心,承載越來(lái)越重要的應用。中國人口眾多,上網(wǎng)人數逐年劇增,使用郵件也日益頻繁。郵件系統從建成的那一天起,就面臨升級的壓力。如何設計一個(gè)結構良好的大容量郵件系統,對于系統穩定性、可靠性,對于日后的升級維護有著(zhù)至關(guān)重要的作用。

  春笛公司作為一個(gè)在郵件領(lǐng)域默默耕耘的公司,以小用戶(hù)量的企業(yè)郵件系統立身,最終希望打造一個(gè)堅固的、高度可擴展的、容易管理維護的大容量分布式郵件系統。在設計時(shí),我們主要考慮如下方面:

1.底層堅固、高度穩定。

  為保證系統的穩定可靠,需要在硬件、操作系統、核心MTA、應用層在內的每一個(gè)環(huán)節都穩定可靠才行。硬件通常選取知名品牌服務(wù)器,穩定性、可靠性都有保障,差別不大。

  操作系統選擇Linux或者FreeBSD, 針對郵件系統的特點(diǎn),內核需要特殊調整:如打開(kāi)文件數(open files)、stack size 、max user processes等。除了操作系統核心外,系統只加載必須的軟件,屏蔽一切不不要的服務(wù)端口。

  在操作系統之上,處理smtp、pop3請求的MTA的穩定性、效率也至關(guān)重要。當今世界上使用比較多的是qmail和postfix, 都有分布世界各地的大批用戶(hù)。相比較而言,qmail有著(zhù)更好的模塊化設計、更好的安全性,更高的投遞效率、更可靠的隊列設計。Postfix優(yōu)勢在于和sendmail有著(zhù)很好的兼容性,部署容易,集成程度比較高,也是一個(gè)非常不錯的MTA軟件。

  應用層我們選取Apache+tomcat。Apache久負盛名、久經(jīng)考驗,tomcat背后有SUN支持,最重要的是tomcat5支持應用層負載均衡(Load Balance)。另外,java作為一種面向對象的編程語(yǔ)言,最能體現軟件工程思想,有一系列的UML設計工具、集成開(kāi)發(fā)環(huán)境、應用服務(wù)器可以選擇。很多學(xué)校也開(kāi)設JAVA課程,以后JAVA會(huì )像c語(yǔ)言那樣普及,變成程序員必備的技能之一。郵件系統應用層會(huì )根據用戶(hù)的反饋增加信的增值服務(wù)品種,如果基于java開(kāi)發(fā),很容找到相關(guān)人才。這樣縮短開(kāi)發(fā)周期、節省開(kāi)發(fā)成本、降低維護難度。Google很多服務(wù)是基于java開(kāi)發(fā)的。當然,java也有執行效率低的缺點(diǎn),但隨著(zhù)硬件速度的提升,單只程序運行速度的劣勢很容易被良好的設計模式優(yōu)勢取代。

2.容易管理、維護。

  系統結構復雜之后,必然會(huì )帶來(lái)管理維護上的麻煩。我們的設計思想是希望通過(guò)統一的一個(gè)管理控制界面,讓系統管理員對每臺服務(wù)器的運行狀況、負載情況、流量了如指掌;同時(shí)通過(guò)一個(gè)管控界面,可以遠程控制服務(wù)器啟動(dòng)、關(guān)閉,對服務(wù)進(jìn)程遠程啟動(dòng)、停止,對流量調配。當出現異常時(shí),系統自動(dòng)通過(guò)短信通知到管理人員的手機上。

3.增加設備簡(jiǎn)單、有效。

  系統擴展性是衡量系統設計好壞的一個(gè)重要指標。好的系統能夠通過(guò)簡(jiǎn)單添置硬件、軟件做少許配置即可滿(mǎn)足需要。我們設計的是讓用戶(hù)數量的增長(cháng)和郵件服務(wù)器數量呈線(xiàn)性關(guān)系。由于PC服務(wù)器的硬件成本比較低,以一臺高性能PC服務(wù)器3萬(wàn)元人民幣計算,如果作為SMTP服務(wù)器可以支撐15萬(wàn)用戶(hù),作為POP服務(wù)器可以支撐30萬(wàn)用戶(hù),作為存儲服務(wù)器,可以支撐3萬(wàn)用戶(hù)。平均每用戶(hù)為0.2元、0.1元、1元。

  在保證系統穩定可靠的同時(shí),能夠最大地降低成本。降低成本有2個(gè)途徑,一是最大限度利用硬件,二是避免使用高端的存儲備份設備、負載均衡設備、四層交換機等。


4.具有多級權限管理,支持個(gè)人用戶(hù)、企業(yè)用戶(hù)、運營(yíng)商等。

  大容量郵件系統,不僅僅是個(gè)人用戶(hù),還有企業(yè)用戶(hù)。不同用戶(hù)群體的需求是不同的。針對不同用戶(hù)群,提供不同的服務(wù)套餐,無(wú)疑是市場(chǎng)營(yíng)銷(xiāo)重要手段。而這,需要有技術(shù)上做保障才行。金笛郵件應用層采用java技術(shù),無(wú)疑是體現用戶(hù)需求的最佳技術(shù)手段。

  作為運營(yíng)商,要有豐富權限管理體系,使郵件系統的每一個(gè)管理環(huán)節嚴緊、嚴密。

5.高度模塊化,模塊之間最小耦合。

  模塊化程度的高低,可以體現的系統的成熟度。充分利用開(kāi)源寶庫中的免費資源,將優(yōu)秀的開(kāi)源項目經(jīng)過(guò)改良、優(yōu)化,會(huì )搭建出優(yōu)秀的系統。不贊成完全從底層開(kāi)發(fā)。
模塊之間通過(guò)標準接口通訊,耦合程度盡可能小,這樣,即使出問(wèn)題也不會(huì )影響全局。最重要的是,系統擴展性大大增強。如可以隨時(shí)將病毒掃描過(guò)濾模塊升級,或者將垃圾郵件過(guò)濾模塊升級,其它模塊無(wú)需做任何改動(dòng)。

6.提供與其它系統直接的接口:如計費平臺、短信彩信平臺、防毒網(wǎng)關(guān)等。


  作為郵件運營(yíng),計費模塊很重要。良好的設計可以為靈活的計費提供原始數據。根據這些計費數據,可以制定靈活的促銷(xiāo)手段。

  隨著(zhù)彩信的普及,郵件系統與彩信會(huì )逐漸融合。其它的擴展平臺,如防病毒網(wǎng)關(guān)、反垃圾網(wǎng)關(guān)、反黃網(wǎng)關(guān)都可以靈活對接。

7.應用層二次開(kāi)發(fā)、部署簡(jiǎn)單方便。

  郵件系統的生命力來(lái)自客戶(hù)的需求,只有不斷滿(mǎn)足客戶(hù)需求,推陳出新,與時(shí)俱進(jìn),才會(huì )不斷有新的用戶(hù)加入。根據用戶(hù)需求進(jìn)行二次開(kāi)發(fā),這是必不可少的。二次開(kāi)發(fā)必須簡(jiǎn)單,方便。金笛郵件通過(guò)統一的二次開(kāi)發(fā)接口Jindi-Mailet實(shí)現服務(wù)端應用的擴展。

  郵件系統架構上的演化和優(yōu)劣比較大容量郵件系統按照存儲方式不同,大致可以分為2類(lèi):

1. 統一存儲
  郵件隊列和郵件數據集中放在存儲設備上。前端smtp服務(wù)器多臺,POP服務(wù)器多臺,隨機選擇一臺smtp服務(wù)器或者POP服務(wù)器(這個(gè)過(guò)程一般采用DNS輪詢(xún)方式完成)。選定某臺服務(wù)器后,與該服務(wù)器建立連接,通過(guò)認證系統確認用戶(hù)身份后,發(fā)送或者接收郵件數據。因為是統一存儲,數據都是放在磁盤(pán)陣列上,通過(guò)NFS方式掛在每臺服務(wù)器上。不論是通過(guò)哪臺功能服務(wù)器,都可以完成郵件收發(fā)。

  用戶(hù)對Webmail的請求和smtp/pop3類(lèi)似,也是通過(guò)多臺機器隨機選取實(shí)現負載分布。

2.分布式存儲

  郵件數據分布在每一臺服務(wù)器上,每臺服務(wù)器都提供完整的郵件服務(wù):
  smtp/pop3/imap/webmail/數據庫。用戶(hù)請求過(guò)來(lái)之后,首先查詢(xún)目錄服務(wù)器,驗證用戶(hù)身份,然后找到對應的服務(wù)器,建立連接,收取或者發(fā)送郵件。

  這種方式最大的優(yōu)點(diǎn)是用戶(hù)數量和郵件服務(wù)器數量可以保持線(xiàn)性增長(cháng)。每臺服務(wù)器支持10萬(wàn)郵箱,當一臺服務(wù)器用戶(hù)已達這個(gè)數字時(shí),啟用另外一臺。可以通過(guò)管理程序在不同服務(wù)器直接遷移用戶(hù)。動(dòng)態(tài)管理服務(wù)器。

  從早期UNIX幾十用戶(hù)的簡(jiǎn)單郵件系統,到現在幾百萬(wàn)、上千萬(wàn)郵件系統,中間經(jīng)歷很多變化。不妨把這些梳理一下,比較郵件系統各種技術(shù)的優(yōu)劣。

1.一機一域、一機多域(虛擬域)
  一機一域代表用戶(hù)是企業(yè)用戶(hù)。一臺服務(wù)器作為郵件服務(wù)器。一機多域象新網(wǎng)、萬(wàn)網(wǎng),給很多企業(yè)提供郵箱。

  所有的服務(wù),如smtp,pop3,imap都在一臺服務(wù)器上,對方郵件服務(wù)器通過(guò)查詢(xún)DNS即可唯一鎖定收件方服務(wù)IP,直接投遞過(guò)去。


  這種單機郵件系統,由于受cpu、內存、硬盤(pán)的制約,用戶(hù)最多一般不超過(guò)10萬(wàn)用戶(hù)。考慮可靠性,一般采用HA,將用戶(hù)數據存放磁盤(pán)陣列上,正常只有一臺服務(wù)器工作,異常時(shí)自動(dòng)切換到另外一臺。

  對于一般的企業(yè)用戶(hù),這種單機郵件系統已經(jīng)夠用。但對于大型郵件系統,這種單機系統顯然無(wú)法滿(mǎn)足。

2.多機一域,功能分割,集中存儲。
  郵件服務(wù)器smtp、pop3、imap、webmail服務(wù)分布在不同的服務(wù)器上,通過(guò)NFS統一訪(fǎng)問(wèn)同一存儲區域。


  這種做法,實(shí)現一個(gè)簡(jiǎn)單功能分布,使每一臺服務(wù)器功能單一,幾臺服務(wù)器各司其職,處理能力大大增強。這種簡(jiǎn)單的功能分散,實(shí)現起來(lái)比較簡(jiǎn)單,只要在不同的服務(wù)器其上部署相關(guān)服務(wù)即可,將存儲服務(wù)器通過(guò)NFS mount到每一個(gè)服務(wù)器上,然后在DNS中做相關(guān)配置。

  當用戶(hù)增大到一定數量,并發(fā)量會(huì )比較大,單臺smtp可以到256并發(fā)量,最多不會(huì )超過(guò)1000并發(fā)量。因此smtp很容易成為瓶頸。


  當郵件用戶(hù)并發(fā)量大時(shí),smtp很容易成為瓶頸,在系統中出現瓶頸的地方可以多增加幾臺服務(wù)器,然后更新DNS,通過(guò) DNS查詢(xún)解析不同的smtp服務(wù)器地址,可以使請求平均分配到每一臺服務(wù)器上。

  現在許多大容量郵件系統都脫胎于此,特點(diǎn)是部署容易,簡(jiǎn)單易行。缺點(diǎn)是當訪(fǎng)問(wèn)量增大后,數據訪(fǎng)問(wèn)全部通過(guò)NFS,也很容易出現磁盤(pán)IO瓶頸。

4.多機一域,功能分布,存儲分布。
  該系統前端(front-end)是一個(gè)郵件交換器和目錄服務(wù)器LDAP,后端是多臺獨立的存儲服務(wù)器,通過(guò)管理中心調度,將存儲服務(wù)器通過(guò)NFS掛在相應的smtp服務(wù)器或者pop服務(wù)上。

  在目錄服務(wù)器上,會(huì )保存用戶(hù)名、密碼、smtpserver、popserver、storeserver等信息,當用戶(hù)請求過(guò)來(lái)是,先查詢(xún)LDAP,如果是收信,找到該用戶(hù)對應的smtp, 通過(guò)直接路由方式連接smtpserver,發(fā)信;如果是收信,找到對應的pop,連接popserver下載郵件。

  該架構解決了服務(wù)器處理瓶頸、數據存儲IO瓶頸。缺點(diǎn)是主要的任務(wù)分發(fā)通過(guò)郵件交換器完成。一但郵件交換器出問(wèn)題,整個(gè)系統都將無(wú)法運行。


5.多機一域,雙層負載均衡,存儲分布。
  為避免出現單點(diǎn)故障,將4改良,增加多臺郵件交換器和LDAP服務(wù)器。郵件交換器通過(guò)DNS輪詢(xún)實(shí)現負載均衡,LDAP服務(wù)器做成雙機熱備,任何一臺有故障,另一臺接替。存儲服務(wù)器通過(guò)DRBD實(shí)現兩兩鏡像,避免出現存儲故障。

  這樣一套系統,可以支持千萬(wàn)用戶(hù)級。以2000萬(wàn)用戶(hù)為例,4000并發(fā)量測算,按照處理能力:
Smtp:15萬(wàn)用戶(hù)/臺,pop:30萬(wàn)/臺

  需要:smtp:133臺,pop:66臺,共計約199臺PC服務(wù)器。

  這個(gè)方案的優(yōu)點(diǎn)是沒(méi)有瓶頸,可以無(wú)限擴充,缺點(diǎn)是需要很多存儲服務(wù)器,資源上有些浪費。


6.多機一域,郵件功能服務(wù)器。
  這種方案將以郵件服務(wù)器為單位,形成郵件服務(wù)器陣列。每臺郵件服務(wù)器具有完整的郵件服務(wù)功能:smtp/pop3/imap/webmail等。用戶(hù)認證信息集中存放于LDAP服務(wù)器,通過(guò)LDAP查找用戶(hù)所在郵件服務(wù)器。

  系統管理通過(guò)集中管控界面可以控制用戶(hù)數據在服務(wù)器之間進(jìn)行移動(dòng)、復制、刪除。郵件服務(wù)器進(jìn)行兩兩互備。

  設置獨立的過(guò)濾服務(wù)器,主要過(guò)濾病毒、垃圾郵件和黃色圖片。過(guò)濾服務(wù)器與郵件服務(wù)器之間通過(guò)socket通訊,所有處理在內存完成,大大加快了處理速度。

該系統有如下特點(diǎn):
  (1)這種方案系統造價(jià)比較低。以每臺服務(wù)15萬(wàn)用戶(hù)計算,100臺服務(wù)器可以承載1500萬(wàn)用戶(hù)。100臺服務(wù)器大約200萬(wàn)-300萬(wàn)人民幣左右。
  (2)結構簡(jiǎn)單,布置方便,容易維護。
  (3)用戶(hù)容量與服務(wù)器數量保持線(xiàn)性增長(cháng),擴容只需要增加服務(wù)器即可。
  (4)帳戶(hù)在服務(wù)器直接動(dòng)態(tài)可調,可遷移。
  (5)沒(méi)有瓶頸,應付突發(fā)事件的能力強。
  (6)小面積的故障,不會(huì )影響整理系統。

  基于以上優(yōu)點(diǎn),我們推薦優(yōu)先考慮此方案。


功能設計

功能上我們遵循如下設計理念:

  1. 集中管控。
  管理一個(gè)大型郵件系統,就象管理一臺服務(wù)器那樣簡(jiǎn)單。在單一管理界面下,通過(guò)web瀏覽器即可監控任何環(huán)節,完成大部分操作。

  2.自動(dòng)化、智能化。
  通過(guò)自動(dòng)裝置,如SMS監控系統流量、內存、進(jìn)程、磁盤(pán)空間等,設定報警閥值,超過(guò)閥值就會(huì )自動(dòng)報警,防范于未然。

  3.最簡(jiǎn)化、最優(yōu)化。
  用簡(jiǎn)單辦法完成簡(jiǎn)單的事情。簡(jiǎn)單意味著(zhù)效率、穩定、可靠。

1.主要功能:

基本功能:

Smtp,pop3,imap,webmail

增值模塊:

SMSMMSNETFilePhotolargeFile, Schedule,AntiSPAM

AntiVirus, Anti-pronography, …

可選模塊:

語(yǔ)音郵件、視頻郵件、郵件傳真服務(wù)

2.功能清單:

系統管理員

域管理員

普通用戶(hù)

1.統計、審計功能:

域用戶(hù)管理

認證登錄WebMail  

2.監控功能:

郵件廣播

用戶(hù)session信息初始化

3.服務(wù)器管理:遠程開(kāi)機、關(guān)機、啟動(dòng)服務(wù)、停止服務(wù)

域級過(guò)濾規則設定

顯示首頁(yè)         

4.域管理:添加、變更、轉移、刪除

域級黑名單

保存圖標位置     

5.過(guò)濾服務(wù)器管理

用戶(hù)郵箱大小、附件大小、郵件大小控制

郵件索引顯示     

6DNS管理

功能服務(wù)定制:sms/防病毒等。

郵件移動(dòng)         

  

郵件排序         

   

顯示頁(yè)碼         

   

回復信件         

   

轉發(fā)信件         

   

刪除信件         

   

永久刪除信件     

   

顯示信件原文     

   

顯示郵件內容     

   

加入到地址本     

   

加入到拒收列表   

   

保存郵件

   

pop取信

   

文件夾顯示

   

文件夾刪除

   

文件夾添加

   

文件夾重命名

   

查找郵件

   

發(fā)郵件頁(yè)面顯示

   

立即發(fā)送郵件

   

定時(shí)發(fā)送郵件

   

保存草稿

   

發(fā)送短信郵件

   

添加附件

   

刪除附件

   

個(gè)人地址本顯示

   

團體地址本顯示

   

添加個(gè)人地址本

   

刪除個(gè)人地址本

   

修改個(gè)人地址本

   

添加團體地址本

   

刪除團體地址本   

   

修改團體地址本   

   

地址本排序       

   

導出地址本       

   

導入地址本       

   

顯示自動(dòng)轉發(fā)     

   

修改自動(dòng)轉發(fā)     

   

顯示自動(dòng)回復     

   

修改自動(dòng)回復     

   

顯示簽名檔       

   

刪除簽名檔       

   

增加簽名檔       

   

修改簽名檔       

   

顯示pop收信設置  

   

pop收信設置修改  

   

pop收信設置增加  

   

pop收信設置刪除  

   

修改密碼          

   

顯示參數設置     

   

參數設置修改

   

顯示多風(fēng)格設置   

   

多風(fēng)格設置修改   

   

顯示反垃圾級別設置

   

反垃圾級別設置   

   

顯示殺毒狀態(tài)     

   

修改殺毒狀態(tài)     

   

顯示過(guò)濾設置     

   

郵件過(guò)濾設置添加 

   

郵件過(guò)濾設置修改 

   

郵件過(guò)濾設置刪除 

   

顯示拒收設置     

   

拒收設置修改     

   

外掛一次認證     

   

session維護進(jìn)程

3.后端統計

統計類(lèi)別

統計項目

描述

系統資源

負載情況

5分鐘采樣一次,自動(dòng)繪制統計圖

CPU使用情況

User,system,nice and idel

內存

Totoalusedfree

交換分區

Used ,free,cached,shared

硬盤(pán)

Totalused,free, inode

網(wǎng)絡(luò )狀況

收到字節數,發(fā)送字節數

郵件總量統計

郵件數量,總流量

統計每域、每用戶(hù)收發(fā)郵件總量和字節數。

投遞失敗統計

統計投遞失敗的記錄

按照每域、每用戶(hù)統計

隔離郵件統計

郵件感染病毒,或者認定為垃圾郵件的

按照每域、每用戶(hù)統計

短信統計

短信發(fā)送數統計

按照每域、每用戶(hù)統計

4.后端服務(wù)器管控功能

功能

描述

服務(wù)器節點(diǎn)遠程管理

添加

向集群中添加一臺服務(wù)器

除去

從集群中拿掉一臺服務(wù)器

重啟

遠程重啟服務(wù)器

關(guān)機

遠程關(guān)機

服務(wù)遠程管理

啟動(dòng)

遠程啟動(dòng)某服務(wù)器服務(wù)進(jìn)程

停止

遠程停止服務(wù)器進(jìn)程

監控、報警

設定監控項目,過(guò)載報警

發(fā)送SMS到管理員手機

負載均衡管理

LVSRR-DNS, LDAP

負載均衡遠程調控

Tomcat集群管理

添加節點(diǎn)、刪除、更新

管理webmail服務(wù)器

Session服務(wù)器管理

集中管理用戶(hù)session


北京春笛公司供稿 CTI論壇編輯



相關(guān)鏈接:
北京春笛公司基于linux的內外網(wǎng)郵件路由方案 2004-10-21
金笛郵件列表JDMailList V1.0功能介紹 2004-10-21
北京春笛公司彩郵系統運營(yíng)方案建議書(shū) 2004-10-20
北京春笛公司內外網(wǎng)郵件收發(fā)方案 2004-10-20
金笛短消息系統在稅務(wù)行業(yè)的應用 2003-11-11

分類(lèi)信息:     技術(shù)_email_新聞   技術(shù)_email_文摘
亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 健康| 平阳县| 长泰县| 水城县| 天台县| 正镶白旗| 聊城市| 教育| 麻城市| 兴隆县| 西乡县| 界首市| 威信县| 登封市| 萨迦县| 冀州市| 廉江市| 阿勒泰市| 长春市| 临武县| 平南县| 高安市| 宜宾县| 麻栗坡县| 青铜峡市| 汉沽区| 察隅县| 衡阳县| 永福县| 宿迁市| 广宗县| 康马县| 成武县| 红桥区| 丹江口市| 云林县| 同江市| 个旧市| 连城县| 石河子市| 美姑县| http://444 http://444 http://444 http://444 http://444 http://444