為什么各大企業仍趨之若鶩的要做架構改造呢?
隨著互聯網的擴散,越來越多的公司正在不斷迭代他們的產品,同時還升級其技術架構,將早期單片架構升級到分布式架構。升級和轉型的成本非常大,為什么主要公司仍然急于進行結構轉型?
有三個主要原因:
1)單個系統的成本太高。互聯網用戶涌入的增加導致了需要更好的計算,網絡和存儲能力。通過擴展小型計算機和大型機來提高單臺計算機的性能太昂貴了。現在,普通企業無法承受。
2)數據的時代是國王需要更多的數據進行分析。企業需要更經濟的方式來存儲和分析數據。多節點分布式系統顯然是更好的選擇;
3)在用戶是國王的互聯網時代,互聯網產品需要7 * 24小時提供服務,以確保系統的高可用性。通過添加機器準備災難恢復的方法也進化為分布式系統。
總之,我們需要一個分布式系統。分布式系統的定義是由一組計算機節點組成的系統,該計算機節點通過網絡進行通信并協調完成常用任務。簡單來說,它是通過網絡連接許多鏈接的計算機,共同努力,創建一個高性能,高可用的系統,為外部世界提供服務。
分布式系統的學習包括兩個模塊分布式計算和分布式存儲。在分布式計算中,我們需要學習四個知識點:
1)服務如何找到另一項服務?
2)如何確定發送服務請求的實例?
3)如何避免系統的雪崩?
4)如何監控和警報? 。
在分布式存儲中,我們還需要學習四個知識點:
1)如何判斷數據存儲規則?
2)如何分離數據?
3)如何復制數據?
4)如何進行分布式交易?
在分布式系統的分布式計算中,第一個問題是服務如何找到另一個服務?這部分主要與microServices的想法相結合。通過將服務劃分為生產者(提供響應性服務)和消費者(啟動所請求的服務),然后通過服務注冊和服務發現,制作人節點發送它可以提供它可以提供的服務,它自己的IP地址端口等到注冊表,并且消費者節點轉到注冊表中獲取它根據自己的要求需求。服務。
第二個問題是在找到服務之后,消費者節點應該將用戶的請求發送到部署生產者節點的位置?如果是一個有狀態服務(即,在相同的服務下的不同機器的數據是不同的),請使用路由確認當前要訪問的請求數據的實例是開啟,然后分發請求;如果服務是無狀態的(即,同一服務中的不同機器的數據相同),請求可以通過諸如哈希,重量分布和輪詢等規則分發。
第三個問題是如何避免服務雪崩(即某個機器部署某個服務存在問題,將發送大量請求,導致其他計算機無法承受它,最后所有的服務機器掛了)?分布式系統中有兩種方法:1。快速減少系統負載以避免雪崩,即保險絲服務,降級服務和電流限制服務; 2.通過快速增加機器節點,接受更多服務請求,即靈活擴展。
最后一個問題是如何監視和警告分布式系統?在一個分布式系統中,由于服務和許多機器,如果您不了解系統的整體情況以及服務如何相互關聯,則非常困難解決它們發生時問題。通過在部署服務的每臺機器上安裝探針,收集數據和執行分布式跟蹤跟蹤,與某些報警機器組合,可以保證服務的高可用性,并且在出現問題時可以快速調查并解決問題。
在分布式系統的分布式存儲中,第一個問題是使用什么樣的規則來確定如何存儲數據?行業中有三種流行的理論,即酸(即原子性,一致性,隔離,耐用性),基礎(即基本上可用,軟士軟狀態,最終一致的最終一致性),帽(即一致性一致的可用性,可用性,分區分區容錯)。這取決于不同的業務場景。在交易場景中,大多數公司將采用酸性原則,即交易操作不能接受任何錯誤,每個操作的步驟必須是原子的,隔離操作和操作數據,并且操作完成后部數據是執著的;在大多數情景中,公司一般采用基本原則,即由于每個業務系統開頭的業務量大,數據不需要強烈的一致性,但可以以某種方式采用它使數據保持一致結束。
第二個問題是如何進行數據碎片?我們知道Internet系統將生成大量數據,并且單個機器無法存儲所有數據,因此我們需要解決如何將數據存儲在不同的計算機上。分布式系統中的常用規則是哈希,一致的哈希和范圍碎片規則,用于存儲不同機器上的數據。
第三個問題是如何進行數據復制?為了確保服務的高可用性,除了冷待機準備機器外,還需要數據處理,以確保為訪問任何節點的業務請求的數據是一致的準確性。常用的解決方案包括主從復制,共識協議RAFT等。
第四個問題是如何進行分布式交易?在獨立系統中,可以通過添加時間戳和序列號來實現交易功能。但是,在分布式系統中,由于系統被分成了微服務和微服務被分成多個節點進行部署,因此系統中的時間不能完全同步。此時,您可以使用整個系統選擇機器以根據單個機器的模式來生產事務ID,以及在同一城市中的多個中心和不同位置的多個中心轉到機器以獲取交易ID實現分布式交易一致性。
此時,分布式系統的學習即將結束。讓我們從需要為什么需要分布式系統,并介紹互聯網時代的當前問題,分布式系統的定義,分布式系統計算的核心知識點,以及系統存儲知識點的當前問題。目前,領先的互聯網公司,如Ali Toutiao,騰訊,百度,Meituan等,銀行和保險等金融行業,以及醫療,教育,健康等傳統產業,已經開始重組其技術架構,將個別應用程序轉化為分配,因此掌握分布式系統后,在秋季招聘和金九銀十件母跳季節,會有助于去公司喜歡?
?