分佈式系統架構分享

你們在平時的工做和學習中,是否會遇到下面的一系列問題:html

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

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

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

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

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

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

7.  JAVA和PHP怎麼選擇?網絡

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

若是要解決以上的問題,有必要認識分佈式的相關內容併發

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

image.png


image.png

image.png

image.png

image.png

image.png

分佈式系統設計關注要點

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

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

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

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

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

2、如何改造動態系統?

一、URL惟一化

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

三、去掉Cookie。


3、如何組裝動態內容?

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

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

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

4、分佈式事務

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

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

二、事務補償機制

image.png

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

 一、一致性Consistency:即全部節點在同一實際讀到一樣的數據。或者能夠理解爲當數據

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

 二、可用性Availability:保證不管是成功仍是失敗,每一個請求都可以收到一個反饋,即系

統必定要有響應。

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

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

image.png

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

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

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

dubbo框架

image.png

image.png

image.png

image.png

支付平臺接入簡介

image.png

分類

交易類型名稱

交易說明

商戶我的

支付類

我的訂單支付

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

我的帳單支付

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

我的訂單退款

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

商戶企業

支付類

 

企業訂單支付

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

企業訂單退款

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

企業分期付款

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

企業支付帳單

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

企業協議支付

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

商戶訂單維護類

商戶撤銷訂單

商戶通知支付平臺撤銷一筆還沒有支付的訂單。

商戶修改訂單

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

 

商戶查詢類

商戶單筆查詢交易結果

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

商戶下載對帳單

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

相關文章
相關標籤/搜索