分布式精华问答 | 如何实现分布式系统的高可用性?
布式的處理方式越來越受到業界的青睞——計算機系統正在經歷一場前所未有的從集中式向分布式架構的變革。今天,我們就來看看關于分布式的精華問答吧!
1
Q:什么是分布式緩存?
A:為了提高性能和響應時間,在應用程序(通常是Web應用程序)中“部署”并確保數據從內存加載而不是從磁盤加載(速度更慢)的解決方案。
如果要在單臺機器上使用高速緩存,那么看起來很簡單 - 只需從內存中的數據庫中加載最活躍的數據(例如Guava Cache實例),然后從中提供。當必須在集群中工作時,它變得有點復雜 - 例如5個應用節點以循環方式向用戶提供請求。
Q:如何實現分布式系統的高可用性?
A:高可用性的前提是:保證服務系統能夠持續工作,實現高可用性一般有兩種手段: 一種是通過第三方軟件/組件保證系統的可用性;另一種是軟件/組件自身己具備高可用的技術實現。
Q:分布式系統利弊
A:在分布式系統中:
1、應用可以按業務類型拆分成多個應用,再按結構分成接口層、服務層;我們也可以按訪問入口分,如移動端、PC端等定義不同的接口應用;
2、數據庫可以按業務類型拆分成多個實例,還可以對單表進行分庫分表;
3、增加分布式緩存、搜索、文件、消息隊列、非關系型數據庫等中間件;
很明顯,分布式系統可以解決集中式不便擴展的弊端,我們可以很方便的在任何一個環節擴展應用,就算一個應用出現問題也不會影響到別的應用。
隨著微服務Spring Cloud & Docker的大熱,及國內開源分布式Dubbo框架的重生,分布式技術發展非常迅速。
分布式系統雖好,也帶來了系統的復雜性,如分布式事務、分布式鎖、分布式session、數據一致性等都是現在分布式系統中需要解決的難題,雖然已經有很多成熟的方案,但都不完美。分布式系統也增加了開發測試運維成本,工作量增加,分布式系統管理不好反而會變成一種負擔。
Q:分布式系依賴關系如何理解?
A:整個頂層設計下的若干個子系統肯定存在依賴關系,但是依賴關系是否科學、是否可以持久維護是需要考慮的一個非常關鍵的要點 。?客戶方不懂技術,是我們在需求調研階段遇到的算一個問題的問題,但關鍵看需求人員從哪個方面著手向用戶解釋,引導用戶對需求邏輯進行分析 。?比起前兩個代碼級別的循環依賴和業務級別的循環依賴,整個頂層設計下的若干子系統的循環依賴問題才是架構師最頭疼的問題。
Q:分布式與集群的區別是什么?
A:分布式:一個任務分給多臺機器去做,減少單個任務的執行時間。
集群:提高單位時間內執行任務數。
例如:一個任務由10個子任務組成,每個子任務單獨執行需要1個小時,則在一臺服務器上執行該任務需要10個小時。
分布式方案:提供10臺服務器,每臺服務器只處理一個子任務,不考慮任務間的依賴關系,執行完這個任務只需要一個小時。
集群方案:同樣提供10臺服務器,每臺服務器都能獨立處理這個任務。假設有10個任務同時到達,10個服務器將同時工作,10小時后,10個任務同時完成,同樣是一個小時完成一個任務。
小伙伴們沖鴨,后臺留言區等著你!
關于分布式,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號后臺回復:白皮書,獲取IDC最新數據白皮書整理資料!
推薦閱讀:
Elastic Jeff Yoshimura:開源正在開啟新一輪的創新 | 人物志
深入淺出Docker 鏡像 | 技術頭條
19歲當老板, 20歲ICO失敗, 21歲將項目掛到了eBay, 為何初創公司如此艱難?
碼二代的出路是什么?
機器學習萌新必備的三種優化算法 | 選型指南
小程序的侵權“生死局”
@996 程序員,ICU 你真的去不起!
真香,朕在看了!
總結
以上是生活随笔為你收集整理的分布式精华问答 | 如何实现分布式系统的高可用性?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 悟空理财债权撮合中什么意思
- 下一篇: 平安万事达金卡一般额度是多少