一套web服務系統架構總結

服務器用的是yaws,erlang實現,支持處理動態內容和rest服務,所有請求均爲http請求,服務對象包括app/weixin/web等。



系統功能劃分 ctrl_out、ctrl_process、ctrl_db、ctrl_general、ctrl_app1、ctrl_app2幾個部分。

消息模式是一個倒樹狀和一個樹狀結構的結合,請求->彙總-處理-分發->返回

1.ctrl_out

基於yaws的appmod模式,所有服務器的80端口收到的http請求都會發送到ctrl_out模塊。

主要功能:

1、根據請求來源不同,解碼協議,提取出主要的請求內容

     2、發送到主邏輯單元ctrl_process模塊進行處理

   3、將計算結果包裝,組裝成協議格式返回給用戶

其他功能:

1、網關,唯一個對外的接口

2、緩存系統

3、信息、請求過濾,經簡單處理後屏蔽掉一些不合法的請求

4、訪問日誌


2、ctrl_process

主控制流程,所有合法的請求都會經ctrl_out轉發給此模塊進行處理。

主要功能:

1、按照邏輯流程調用各細分功能模塊處理請求(分發)

3、ctrl_db

數據庫操作模塊

4、ctrl_genenral

通用功能庫,所有函數均不涉及數據操作和其他模塊的交互。如字符串轉碼、文件寫入等

5、ctrl_app1,ctrl_app2,......

遵循opt原則的獨立app,

應用內遵循mvc設計模式,控制器負責接收、處理、發送請求;視圖負責消息模版和格式;模型負責數據操作;

應用之間是完全的並列關係,用戶之間的差異化回覆均在此模塊實現。


整個系統 模塊與模塊、應用與應用之間相對獨立,耦合性低,擴展性強,各系統功能可以部署在一臺或多臺機器上,在此基礎上可以實現分佈式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章