精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

原騰訊云架構師談可擴展系統的入門基礎

責任編輯:editor005

作者:mmlidong

2015-06-23 21:16:57

摘自:segmentfault

隨著智能設備的普及使得高并發場景越來越多,可擴展成為系統設計的必要條件,下面分別介紹下可擴展系統的四個重要組成部

肖立鵬原來在騰訊云做架構師,目前在Udesk擔任CTO職位。下面是他分享的Udesk在可擴展高并發架構方面的一些實踐經驗。

隨著智能設備的普及使得高并發場景越來越多,可擴展成為系統設計的必要條件,下面分別介紹下可擴展系統的四個重要組成部分

一、負載均衡——可擴展性&冗余容錯

水平擴展:負載能力和增加硬件呈線性關系。如果你有一臺服務器并增加一臺,負載能力翻 倍,再增加一臺,負載能力增長33%。

冗余容錯:一臺服務器死機不會影響服務的正確性,只是降低系統的負載能力。

一般的冗余和水平擴展等,都可以通過負載均衡來實現。主要有3種實現方法:

客戶端負載均衡:這里的客戶端是廣義的客戶端,例如服務a調用服務b,我們認為服務a是客戶端??蛻舳伺渲胣個服務端的地址,采取 Round-Robin或者其他隨機策略訪問服務端。優點是編碼實現簡單;缺點是變更困難,服務端遷移需要升級所有客戶端配置,當然你可以搭建配置服務,這個服務本身也是單點,然后為配置服務實現負載均衡……

硬件負載均衡:購買專用的負載均衡器,例如Citrix NetScaler。優點:性能卓越; 缺點:昂貴,高富帥專用。

軟件負載均衡:通過路由分發,心跳探測等方法,實現軟件層面的負載均衡,典型的開源組件有:LVS,Nginx和HAProxy等。目前大多數互聯網公司均采用軟件負載均衡。

二、數據緩存

緩存是一個系統中性能提升的關鍵。主要有5種實現方法:

應用層:應用自己在本地內存或其他介質中緩存部分數據,一般通過LRU算法淘汰。

數據庫層:數據庫引擎自身的緩存,需要DBA來配置優化,當然現在也有不少NoSQL的緩存+存儲解決方案如MongoDB、帶HandlerSocket插件MySQL、ttserver等。數據庫緩存的好處是應用側代碼不需要更改。

內存緩:目前的主流解決方案,代表有MemCached和Redis,Redis的優點是數據結構 豐富,可以輕松支持排名等場景,缺點是單進程實現導致持久化方案不夠完美,今年4月Redis Cluster終于迎來了第一個穩定版本,可以實現數據自動sharding和容錯,穩定性有待后續檢驗。

網頁緩存:在Apache等HTTP服務器上,配置full-page cache等策略。

CDN:對于靜態文件,一般采用CDN來加速。

使用緩存的過程中,必須要注意緩存有效性,在數據源更新后,要及時更新緩存中的數據。目前主要有read-through和write-through兩種策略,采用write-through的多些。

三、離線處理

對搜索引擎,廣告推薦等數據分析類場景,必須對數據做離線處理。主要有3種主流的實現方法:

定期任務:每天每小時的任務,使用crontab或者其他cron服務來調度。

并行計算:采用MapReduce,其它主流開源組件有Hive,Impala等。

消息隊列:任務排隊,并發處理等,主流開源組件有RabbitMQ,Kafka。

四、平臺建設

提供給應用的,不是一堆組件,而是一組API,把底層架構隱藏起來。這樣有兩個主要的好 處:

底層架構重用,可支撐多應用,運營更方便。

應用和底層架構解耦合,底層架構可自我演進,是Scale的必備基礎。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 济宁市| 勐海县| 兴业县| 太康县| 汪清县| 泽州县| 亳州市| 西平县| 谷城县| 资兴市| 普宁市| 青川县| 谢通门县| 太仆寺旗| 高邑县| 德格县| 常德市| 新绛县| 剑川县| 长汀县| 永善县| 明星| 海宁市| 丁青县| 南皮县| 阳新县| 文山县| 吉木萨尔县| 周至县| 务川| 米脂县| 筠连县| 利津县| 晋中市| 弥渡县| 镇赉县| 六安市| 建始县| 蓬溪县| 西昌市| 永德县|