日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

對于剛剛過去的雙十一,優惠券、補貼金、滿減是“買買買人”的噩夢,高并發、高性能、高可用也是技術人的魔咒。雙十一秒殺時幾萬人搶同一個商品,直播間幾十萬人同時搶紅包,每秒訂單高達 58 萬筆,在雙十一大促活動當天,如何保證流量激發的時候不宕機?本篇文章將揭秘如何基于云平臺來構建高可用的互聯網應用。

什么是高并發、高性能、高可用

一、高并發(High Concurrency)

高并發是如今互聯網分布式系統架構設計必須要考慮的因素之一,能夠保證系統同時并行處理很多請求。高并發意味著大流量,需要運用技術手段抵抗流量的沖擊,這些手段好比操作流量,能讓流量更平穩地被系統所處理,帶給用戶更好的體驗。高并發相關常用的一些指標有響應時間(Response Time)、吞吐量(Throughput)、每秒查詢率 QPS(Query Per Second)、每秒事務處理量 TPS(Transaction Per Second)、并發用戶數等。

響應時間(Response Time):系統對進來的請求反應的時間,比如你打開一個頁面需要 1 秒,那么這 1 秒就是響應時間。

吞吐量(Throughput):吞吐量是指每秒能處理多少請求數量,好比你吃飯,每秒能吃下多少顆米飯。

每秒查詢率 QPS(Query Per Second:秒查詢率是指每秒響應請求數,和吞吐量差不多。

每秒事務處理量 TPS(Transaction Per Second):每秒響應事務請求數。

并發用戶數:同時承載正常使用系統功能的用戶數量。例如一個即時通訊系統,同時在線量一定程度上代表了系統的并發用戶數。

二、高性能(High Performance)

什么是高性能呢?高性能是指程序處理速度非???,所占內存少、CPU 占用率低。高性能的指標經常和高并發的指標緊密相關,想要提高性能,那么就要提高系統高并發能力,兩者互相捆綁在一起。應用性能優化的時候,對于計算密集型和 IO 密集型還是有很大差別,需要分開來考慮。還有可以增加服務器的數量、內存、IO 等參數提升系統的并發能力和性能,但不要浪費資源,要考慮硬件的使用率最高才能發揮到極致。怎么樣提高性能呢?

避免因為 IO 阻塞讓 CPU 閑置,導致 CPU 的浪費。

避免多線程間增加鎖來保證同步,導致并行系統串行化。

免創建、銷毀、維護太多進程、線程,導致操作系統浪費資源在調度上。

三、高可用(High Availability)

高可用通常用來描述一個系統經過專門的設計,從而減少停工時間,而保持其服務的高度可用性。假設系統一直能夠提供服務,我們說系統的可用性是 100%。如果系統每運行 100 個時間單位,有 1 個時間單位無法提供服務,我們說系統的可用性是 99%。很多公司的高可用目標是 4 個 9,也就是 99.99%,這就意味著,系統的年停機時間為 52.6 分鐘。

實現一個高可用的互聯網應用和服務是個非常具有挑戰的任務。每個架構師對高可用或許都有不同理解。對很多架構師而言,高可用意味著服務不存在單點故障、數據有冗余備份、架構設計上避免使用單點。

基于云平臺構建高可用的互聯網應用

高可用自下而上可分為三個層面。首先是資源高可用。就云平臺而言,這通常指的是 IaaS 資源的高可用。IaaS 即 Infrastructure as a Service(基礎設施即服務), 一般指的是云平臺為用戶提供的 IT 基礎架構服務,如計算、存儲、網絡等,類似于大家生活中使用的水和電一樣。

其次是應用高可用。就云平臺而言,這通常指的是 PaaS 服務高可用。PaaS 即 Platform as a Service(平臺即服務), 一般指的是云平臺為用戶提供的中間件服務、數據庫服務、日志服務、大數據處理服務等一系列應用支持服務。

最后是服務高可用。就云平臺和對用戶而言,這通常指的是 SaaS 服務高可用。SaaS 即 Software as a Service(軟件即服務),一般我們指的是由軟件提供商和服務商在互聯網上直接提供給客戶,通常是面向最終用戶的多租戶服務。

IaaS 服務高可用

我們將依次說明云平臺是如何通過計算資源高可用、存儲資源高可用、和網絡資源高可用做到 IaaS 層高可用的。

首先,計算資源的高可用相對比較簡單,它一般通過在不同可用區(Zone)部署相同的計算類型資源來實現。下圖中舉例了一個地域(Region)的不同可用區(Zone)部署了相同實例類型 ID 的計算資源。這里地域(Region)通常是指不同城市,比如北京或上海, 而可用區(Zone)通常指一個城市分布在不同地點位置的機房。

在存儲資源高可用上,青云QingCloud實現了跨區的本地多副本。同時青云QingCloud自研的 NeonSan 云存儲架構在超高性能下實現了云存儲的高可用。它基于 RDMA 技術,在實現高可用的同時,最大發揮出了 SSD 云存儲的性能。

在網絡資源高可用方面,青云在 QingCloud 公有云平臺構建了跨區高可用的多種網絡資源,這包括彈性公網地址(Elastic IP)、私有網絡 VPC、基礎網絡 Vxnet、負載均衡器、NAT 網關等網絡資源。

PaaS 高可用

PaaS 高可用一般通過應用集群來實現。集群一般可分為主從集群(包括一主多從,甚至多主多從)和對等集群。

主從應用集群通常是用在數據只能一個實例進行修改的情況。而對等集群通常用在數據可進行并發修改的情況。

其中一種實現一主多從集群的方式是借助應用協調服務(如 Zookeeper) 來幫助集群進行主從選舉。為達到應用集群的高可用,我們通常會在選舉出 Master 節點后將一個寫VIP 綁定到 Master 節點中。而將一個讀 VIP 通過負載均衡綁定到多個 Slave 節點上。這個綁定關系需要隨著集群拓撲結構的變化而動態變化。

實現一主多從集群的另一種方式是在應用集群內部實現分布式一致性協議(如 Raft 算法) 幫助集群進行主從選舉,選舉出集群當前的 Master 主節點。

在實現對等型集群上,我們通常使用負載均衡器來協助進行流量分發,實現對等型高可用集群。

實現應用集群需注意幾個關鍵要素:集群的升級、集群的擴縮容、集群的備份與恢復。它是一個集群生命周期管理所涉及的范疇。

青云QingCloud在 PaaS 平臺上為用戶提供了一個實現了高可用應用集群的服務框架:AppCenter 應用基礎架構。

在 AppCenter 框架下,用戶不僅可以方便進行高可用應用集群的開發與創建,也可以進行集群的擴縮容等維護。借助青云QingCloud的自動彈性伸縮服務,還能根據應用的負載來調整集群工作節點數量大小。例外,我們可通過配置彈性伸縮服務,在 8 點晚高峰時將集群是節點數自動增加,以提高集群的負載處理能力。在晚 12 點時自動將集群數量減少以降低資源使用成本。

青云QingCloud提供的另一個 PaaS 高可用服務平臺是 QingCloud Kubernetes Engine (QKE)。QKE 是一個容器服務平臺,它集成了 Kubernetes、可視化集群管理工具 KubeSphere,整合了青云云平臺的 IaaS 資源,為用戶提供了一個集彈性、簡單、開放、高可用于一身的容器服務運行環境。

SaaS 高可用

在 SaaS 高可用上,我們首先想到的是實現服務的多區高可用。

在引流層,我們可以在 QingCloud 云平臺上通過 GSLB、雙 EIP、雙負載均衡器達到引流層高可用的效果。

在應用層,我們可以將前面所講的 PaaS 應用集群部署為多區高可用來達到多區高可用的效果。

在數據層,我們也可將數據庫服務部署為多區高可用來達到此效果。

在 SaaS 服務異地高可用上,我們通常會考慮兩地三中心、異地災備、異地雙活這樣的架構。

首先是兩地三中心。下圖顯示了一種兩地三中心的架構,在這種架構中, 除了有一個 Master 主服務,在同城的 2 個機房會部署多個 Slave,同時異地的機房還會部署至少一個 Slave 從服務。這些 Slave 通常可分擔一些只讀業務。

其次是異地災備。與兩地三中心不同,異地災備中同城和異地通常都有完整和獨立數據庫集群。數據通過異步復制同步到異地的災備中心中。異地災備中心通常是不接受服務請求,而是進行 Hot Standby。

最后是異地雙活。上面說的異地災備因為異地災備中心不處理業務,會比較浪費資源。我們就會想要把它這部分資源利用起來,讓異地能夠分擔一定的業務,這就是我們說的異地雙活。服務的異地高雙活相對比較復雜,它通常需要基于地域進行業務分區和數據拆分。例如,我們首先將業務數據根據地域拆分成了獨立 A、B 兩個庫。A 地的業務由 A 地服務來處理,在 B 地進行 Hot Standby;B 地的業務由 B 地服務來處理,在 A 地進行 Hot Standby。A、B 兩地的數據通過異步復制來同步。針對公共數據和不能同時修改數據,我們還會考慮設置全局庫和全局服務,全局數據通過同步或異步復制達到數據的最終一致。

SaaS 服務高可用特別是異地高可用需要注意幾個要點:緩存 100% 可重建、業務分片、主從服務切換的時間、數據同步帶寬、考慮緩存 100%,以及異地可重建。主要是因為相對于數據庫的異步復制,緩存的異步復制通常需要更多的復制帶寬和更小的網絡延時。

為了保障 SaaS 服務的高可用,我們還要考慮對 SaaS 服務采取保護性措施。API 網關為我們提供了一種很好的對 SaaS 服務進行保護的方式。API 網關可以讓我們對 API 請求進行限流、熔斷、服務降級,以提高我們在關鍵服務的高可用性。

分享到:
標簽:青云 激發 流量 保障 提供 時不宕機 QingCloud
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定