分佈式系統架構分享

大家在平時的工作和學習中,是否會遇到下面的一系列問題:

1.  如果數據庫表記錄數量超過了100萬,會發生什麼?如何優化性能?

2.  如果web server 同時訪問量超過1萬人,會發生什麼?如何優化性能?

3.  網站內容是動態的,頁面卻是靜態網頁,這是如何實現的?

4.  當前的主流web技術架構,未來的可能技術路線?

5.  在線支付的實現方式?

6.  如何有效的使用網頁靜態化解決頻繁查詢的問題數據庫的優化步驟?

7.  JAVA和PHP怎麼選擇?

8.  系統面對高併發大數量時,從前端到數據庫會遇到哪些挑戰及該如何處理?

如果要解決以上的問題,有必要認識分佈式的相關內容

                分佈式系統定義及演進過程

image.png


image.png

image.png

image.png

image.png

image.png

分佈式系統設計關注要點

一、什麼是靜態化系統?靜態化系統有哪些特徵?

1、一個頁面對應一個固定的URL,一個URL唯一標識一個頁面;

2、頁面是無狀態的,如用戶相關的信息,時間因素,地域因素;

3、不能包含Cookie等私有數據。

強調:所謂的靜態化不僅僅指存在於磁盤或者緩存中的HTML頁面,它還可能是服務器生成的頁面,但是這些頁面本身不包含上面所說的那些因素。Js動態生成的內容不屬於以上範疇。

二、如何改造動態系統?

1、URL唯一化

2、分離與用戶相關的信息,時間,地域信息等,改爲Ajax異步獲取

3、去掉Cookie。


三、如何組裝動態內容?

1、ESI(Edge Side Includes):即在Web服務器上做動態內容請求,並將請求插入到靜態頁面中,當用戶拿到頁面時已經是一個完整的頁面了;

2、CSI(Client Side Includes):發起一個異步的JS請求單獨向服務器獲取動態內容。這種方式使服務端性能更佳,但是用戶端頁面有些延遲,體驗稍差;

3、SSI(Server Side Includes):通過註釋行SSI命令加載不同模塊,構建爲html,實現整個網站的內容更新,通過SSI調用各模塊的對應文件,最後組裝爲html頁面,需要服務器模塊支持(具體配置本文不做詳述),比如:apache服務器需要開啓mod_include模塊。

四、分佈式事務

1、兩階段提交(2PC,Two Phase Commitment Protocal)

   在單機事務中,事務失敗就直接回滾,而在分佈式系統中,提交前增加了準備階段,所以稱爲兩階段提交。

2、事務補償機制

image.png

五、大型網站一致性的基礎理論-CAP

 1、一致性Consistency:即所有節點在同一實際讀到同樣的數據。或者可以理解爲當數據

寫入成功後,所有的節點會同時看到這個新的數據。

 2、可用性Availability:保證不論是成功還是失敗,每個請求都能夠收到一個反饋,即系

統一定要有響應。

 3、分區容忍性partition-Tolerance:即便系統中有部分問題或者有消息丟失,但系統仍能

繼續運行,也就是當系統的一部分出現問題時,系統仍能繼續工作。

image.png

選CA,放棄分區容忍性,加強一致性和可用性。這時期就是傳統的單機數據庫。

選AP,放棄一致性,追求分區容忍性及可用性。

選CP,放棄可用性,追求一致性和分區容忍性。性價比低,網絡問題會直接讓整個系統不可以。

dubbo框架

image.png

image.png

image.png

image.png

支付平臺接入簡介

image.png

分類

交易類型名稱

交易說明

商戶個人

支付類

個人訂單支付

個人用戶在商戶網站購物,並確定付款後,商戶網站將訂單支付信息引導到支付平臺,個人用戶在支付平臺選擇付款銀行,通過銀行支付網關支付貨款,完成一筆訂單的支付交易。

個人賬單支付

個人在公共事業網站或者支付平臺查詢賬單,確認付款後,個人用戶在支付平臺選擇付款銀行,通過銀行支付網關支付,完成一筆賬單的支付交易。

個人訂單退款

商戶網站將退款交易發送至支付平臺,支付平臺將退款交易發送至付款銀行。

商戶企業

支付類

 

企業訂單支付

企業在商戶網站購物並確定付款後,商戶網站將支付指令發送至支付平臺。企業可對一筆訂單一次支付或分多次支付,可以區分定金、貨款。

企業訂單退款

商戶網站對已支付的訂單退款,將退款交易發送至支付平臺。

企業分期付款

企業在商戶網站購物,選擇分期支付訂單貨款,確定付款時,一筆訂單支付將被分成多筆支付指令,支付平臺保存每一筆支付指令,根據支付方式等待企業確認或將支付指令發送到付款銀行。

企業支付賬單

企業在公共事業網站查詢賬單,確認付款後,公共事業網站將該筆支付指令發送至支付平臺。

企業協議支付

企業在公共事業網站查詢協議支付賬單,確認付款後,該筆支付指令經支付平臺轉發至付款銀行。

商戶訂單維護類

商戶撤銷訂單

商戶通知支付平臺撤銷一筆尚未支付的訂單。

商戶修改訂單

企業在商戶網站通過該交易修改訂單金額,爲了商戶不能提供足夠的貨物時,修改訂單。

 

商戶查詢類

商戶單筆查詢交易結果

商戶向支付平臺發出查詢交易支付結果指令。

商戶下載對賬單

商戶下載支付平臺對賬記錄。


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