大家在平時的工作和學習中,是否會遇到下面的一系列問題:
1. 如果數據庫表記錄數量超過了100萬,會發生什麼?如何優化性能?
2. 如果web server 同時訪問量超過1萬人,會發生什麼?如何優化性能?
3. 網站內容是動態的,頁面卻是靜態網頁,這是如何實現的?
4. 當前的主流web技術架構,未來的可能技術路線?
5. 在線支付的實現方式?
6. 如何有效的使用網頁靜態化解決頻繁查詢的問題數據庫的優化步驟?
7. JAVA和PHP怎麼選擇?
8. 在系統面對高併發大數量時,從前端到數據庫會遇到哪些挑戰及該如何處理?
如果要解決以上的問題,有必要認識分佈式的相關內容。
分佈式系統定義及演進過程
分佈式系統設計關注要點
一、什麼是靜態化系統?靜態化系統有哪些特徵?
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、事務補償機制
五、大型網站一致性的基礎理論-CAP
1、一致性Consistency:即所有節點在同一實際讀到同樣的數據。或者可以理解爲當數據
寫入成功後,所有的節點會同時看到這個新的數據。
2、可用性Availability:保證不論是成功還是失敗,每個請求都能夠收到一個反饋,即系
統一定要有響應。
3、分區容忍性partition-Tolerance:即便系統中有部分問題或者有消息丟失,但系統仍能
繼續運行,也就是當系統的一部分出現問題時,系統仍能繼續工作。
選CA,放棄分區容忍性,加強一致性和可用性。這時期就是傳統的單機數據庫。
選AP,放棄一致性,追求分區容忍性及可用性。
選CP,放棄可用性,追求一致性和分區容忍性。性價比低,網絡問題會直接讓整個系統不可以。
dubbo框架
支付平臺接入簡介
分類 | 交易類型名稱 | 交易說明 |
商戶個人 支付類 | 個人訂單支付 | 個人用戶在商戶網站購物,並確定付款後,商戶網站將訂單支付信息引導到支付平臺,個人用戶在支付平臺選擇付款銀行,通過銀行支付網關支付貨款,完成一筆訂單的支付交易。 |
個人賬單支付 | 個人在公共事業網站或者支付平臺查詢賬單,確認付款後,個人用戶在支付平臺選擇付款銀行,通過銀行支付網關支付,完成一筆賬單的支付交易。 | |
個人訂單退款 | 商戶網站將退款交易發送至支付平臺,支付平臺將退款交易發送至付款銀行。 | |
商戶企業 支付類
| 企業訂單支付 | 企業在商戶網站購物並確定付款後,商戶網站將支付指令發送至支付平臺。企業可對一筆訂單一次支付或分多次支付,可以區分定金、貨款。 |
企業訂單退款 | 商戶網站對已支付的訂單退款,將退款交易發送至支付平臺。 | |
企業分期付款 | 企業在商戶網站購物,選擇分期支付訂單貨款,確定付款時,一筆訂單支付將被分成多筆支付指令,支付平臺保存每一筆支付指令,根據支付方式等待企業確認或將支付指令發送到付款銀行。 | |
企業支付賬單 | 企業在公共事業網站查詢賬單,確認付款後,公共事業網站將該筆支付指令發送至支付平臺。 | |
企業協議支付 | 企業在公共事業網站查詢協議支付賬單,確認付款後,該筆支付指令經支付平臺轉發至付款銀行。 | |
商戶訂單維護類 | 商戶撤銷訂單 | 商戶通知支付平臺撤銷一筆尚未支付的訂單。 |
商戶修改訂單 | 企業在商戶網站通過該交易修改訂單金額,爲了商戶不能提供足夠的貨物時,修改訂單。 | |
商戶查詢類 | 商戶單筆查詢交易結果 | 商戶向支付平臺發出查詢交易支付結果指令。 |
商戶下載對賬單 | 商戶下載支付平臺對賬記錄。 |