大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java分布式系統(tǒng)框架教程,架構設計

Java分布式系統(tǒng)框架教程,架構設計

更新時間:2020-03-23 10:11:10 來源:動力節(jié)點 瀏覽5461次

一.主流架構模型SOA架構和微服務架構

  SOA架構

  SOA全稱(ServiceOrientedArchitecture)中文意思為面相服務的架構,他是一種設計方法,輕重包含多個服務,服務之間通過相互依賴最終提供一系列的功能,一個服務通常以獨立的形式存在與操作系統(tǒng)進程中,各個服務之間通過網(wǎng)絡調用,

  跟SOA相提并論的還有ESB(企業(yè)服務總線),簡單來說ESB就是管道,鏈接各個服務節(jié)點,為了集成不同系統(tǒng)和不同協(xié)議,ESB做消息的轉化解釋和路由的工作。讓不同的服務連通。

  系統(tǒng)初期

Java分布式系統(tǒng)框架教程,架構設計

  系統(tǒng)后期

Java分布式系統(tǒng)框架教程,架構設計

  SOA架構,使用ESB

Java分布式系統(tǒng)框架教程,架構設計

  SOA解決的問題

  1.系統(tǒng)集成,站在系統(tǒng)的角度,解決企業(yè)系統(tǒng)間的通信問題,把原先散亂無規(guī)劃的系統(tǒng)間的網(wǎng)狀結構,梳理成規(guī)劃,可治理的系統(tǒng)間星型結構。這一步需要引入一些產(chǎn)品,例如ESB,以及技術規(guī)范,服務管理規(guī)范,這一步解決的核心問題是有序

  2,系統(tǒng)的服務化,站在功能的角度,把業(yè)務邏輯抽象成可復用可組裝的服務,通過服務的編排和實現(xiàn)業(yè)務的快速再生,目的:把原先固有的業(yè)務功能變?yōu)橥ㄓ玫臉I(yè)務服務,實現(xiàn)業(yè)務邏輯的快速復用,這步解決的核心問題是復用

  3,業(yè)務的服務化,站在企業(yè)的角度,把企業(yè)只能抽象成可復用可組裝的服務,把原先職能化的企業(yè)架構轉為變?yōu)榉栈ǖ钠髽I(yè)架構,進一步提升企業(yè)的對外服務能力,前兩步都是技術層面來解決系統(tǒng)調用,系統(tǒng)功能復用的問題,第三步則是以業(yè)務驅動把一個業(yè)務單元封裝成一項服務,這一步解決的核心問題是高效。

  微服務架構

  微服務架構和SOA架構類似,微服務架構是在SOA上做的升華,微服務架構強調的一個重點是“業(yè)務需要徹底的組件化和服務化”,原有的單個業(yè)務系統(tǒng)會拆分為多個可以獨立開發(fā)設計運行的小應用。這些小應用之間通過服務完成交互和集成。

  組件表示一個可以獨立更換和升級的單元,像PC機中的CPU內存,顯卡等獨立且可以更換升級而不影響其他單元,如果我們把PC機作為組件以服務的方式構建,那么這臺PC只需要維護主板和一些必要的外部設備,CPU,內存,硬盤都是以組件方式提供服務,PC需要調用CPU做計算機處理,只需要知道CPU這個組件的地址即可。

  微服務特征

  1.通過服務實現(xiàn)組件化

  2.按業(yè)務能力來劃分服務和開發(fā)團隊

  3.去中心化

  4,基礎設施自動化(devops,自動化部署)

  SOA架構和微服務架構的區(qū)別

  1,微服務不在強調傳統(tǒng)的SOA架構里面比較重的ESB企業(yè)服務總線,同時SOA的思想進入到單個業(yè)務系統(tǒng)內部實現(xiàn)真正的組件化。

  2,Docker容器技術的出現(xiàn),為微服務提供了便利的條件,比如更小的部署單元,每個服務都可以通過類似的Node或者Springboot等技術跑在自己的進程中,

  3,SOA注重的系統(tǒng)集成方面,而微服務關注的是完全分離

  二.分布式架構的基本理論CAP,BASE以及應用

  首先了解下一致性的問題

  強一致性:

  以客戶端的角度來看,多并發(fā)訪問時更新過的數(shù)據(jù),要求數(shù)據(jù)能被后續(xù)的訪問看到,就是強一致性,例如數(shù)據(jù)庫的事務

  弱一致性:

  以客戶端的角度來看,多并發(fā)訪問時更新過的數(shù)據(jù),如果能容忍后續(xù)的訪問可以看到部分或者全部看不到,這就是弱一致性,例如:銀行轉賬(一般是兩小時或者24小時內到賬)

  最終一致性

  以客戶端的角度來看,多并發(fā)訪問時更新過的數(shù)據(jù),如果經(jīng)過一段時間后要求能訪問到更新后的數(shù)據(jù),這就是最終一致性,例如:銀行轉賬(一般是兩小時或者24小時內到賬)

  最終一致性是弱一致性的一個特例,是若一致性中非常推崇的一種一致性模型,也是業(yè)界在大型分布式系統(tǒng)的數(shù)據(jù)一致性上比較用的多的模型

  cap原理中,有三個要素

  一致性(Consistency)

  可用性(Availability)

  分區(qū)容忍性(Partitiontolerance)

  CAP原理指的是這三個要素最多只能同時實現(xiàn)兩點,不能三者兼顧,因此在設計分布式系統(tǒng)架構時,必須做出取舍,而對于分布式系統(tǒng)分區(qū)容忍性是最基本要求,否則就失去價值,因此設計分布式系統(tǒng),就是在一致性C和可用性A中去一個平衡,對于大多數(shù)web應用,其實并不需要強一致性,因此犧牲一致性而換取高可用性,是目前多數(shù)分布式系統(tǒng)設計的方向。

  一致性:所有節(jié)點上的數(shù)據(jù)時刻保持同步

  可用性:每個請求都能接受一個相應,無論響應成功或失敗

  分區(qū)容錯:系統(tǒng)應該持續(xù)提供服務,即使系統(tǒng)內部(某個節(jié)點分區(qū))有消息丟失。比如交換機失敗,網(wǎng)址網(wǎng)絡被分成幾個子網(wǎng),形成腦裂,服務器發(fā)生網(wǎng)絡延遲或死機,導致某些server與集群中的其他機器失去聯(lián)系。

  CAP并不是一個普適性的原理和知道思想,他僅僅使用于原子讀寫的NoSql場景中,并不適用于數(shù)據(jù)庫系統(tǒng)。

  BASE理論

  從前面的分析中知道,在分布式系統(tǒng)下,CAP并不適合數(shù)據(jù)庫事務(因為更新一些錯誤的數(shù)據(jù)而導致失敗,無論使用什么樣的高可用方案都是徒勞,因為數(shù)據(jù)發(fā)生了無法修正的錯誤)。此外XA事務()雖然保證了數(shù)據(jù)庫在分布式系統(tǒng)下的ACID(原子性,一致性,隔離性,持久性)特性,但也帶來了性能的代價,對于并發(fā)和響應時間要求比較高的電商平臺來說,很難接受的。

  eBay嘗試了另外一條完全不同的路,放寬了數(shù)據(jù)庫事務的ACID的要求,提出一套名為BASE的新準則。BASE全稱是Basicallyavailablesoft-stateEventuallyConsistent系統(tǒng)基本可用軟狀態(tài)數(shù)據(jù)最終一致性,相對CAP來說,他大大的降低了我們對系統(tǒng)的要求。

  Basicallyavailable(基本可用),在分布式系統(tǒng)出現(xiàn)不可預知的故障時,允許瞬時部分可用性

  1.比如我們在淘寶上搜索商品,正常情況下是在0.5s內返回查詢結果,但是由于后端的系統(tǒng)故障導致查詢響應時間變成了2s

  2.再比如數(shù)據(jù)庫采用分片模式,100W個用戶數(shù)據(jù)分在5個數(shù)據(jù)庫實例上,如果破壞了一個實例,那么可用性還有80%,也就是80%的用戶都可以登錄,系統(tǒng)仍然可用做技術人的指路明燈,做職場生涯的精神導師

  3.電商大促時,為了應對訪問量激增,部分用戶可能會被引導到降級頁面,服務層也可能只提供降級服務。這就是損失部分可用性的體現(xiàn)

  soft-state(軟狀態(tài)).表示系統(tǒng)中的數(shù)據(jù)存在中間狀態(tài),并且這個中間狀態(tài)的存在不會影響系統(tǒng)的整體可用性,也就是表示系統(tǒng)允許在不同節(jié)點的數(shù)據(jù)副本之間進行數(shù)據(jù)同步過程中存在延時;比如訂單狀態(tài),有一個待支付、支付中、支付成功、支付失敗,那么支付中就是一個中間狀態(tài),這個中間狀態(tài)在支付成功以后,在支付表中的狀態(tài)同步給訂單狀態(tài)之前,中間會存在一個時間內的不一致。

  Eventuallyconsistent(數(shù)據(jù)的最終一致性),表示的是所有數(shù)據(jù)副本在一段時間的同步后最終都能達到一個一直的狀態(tài),因此最終一致性的本質是要保證數(shù)據(jù)最終達到一直,而不需要實時保證系統(tǒng)數(shù)據(jù)的強一致

  BASE理論的核心思想是:即使無法做到強一致性,但每個應用都可以根據(jù)自身業(yè)務特點,采用適當?shù)姆绞絹硎瓜到y(tǒng)達到最終一致性

  什么是分布式架構下的高可用設計

  1,避免單點故障

  a。負載均衡技術(failover,選址,硬件負載,軟件負載,去中心化負載(gossip(redis-cluster))

  b。熱備linuxHA

  c。多機房(同城災備,異地災備)

  2,應用的高可用

  a。故障監(jiān)控(系統(tǒng)監(jiān)控(cpu,內存)、鏈路監(jiān)控、日志監(jiān)控)自動預警

  b。應用的容錯設計(服務降級,限流)自我保護能力

  c。數(shù)據(jù)量(數(shù)據(jù)分片,讀寫分離)

  分布式架構下的可伸縮設計

  垂直伸縮提升硬件能力

  水平伸縮增加服務節(jié)點(服務器)

  加速靜態(tài)內容訪問速度的CDN

  cdn是ContentDeliveryNetwork的縮寫,表示的事內容的分發(fā)網(wǎng)絡,CDN的作用是把用戶需要的內容分發(fā)到離用戶最近的地方,這樣可以是用戶能夠快速獲取所需要的內容。CDN其實就是一種網(wǎng)絡緩存技術,能夠把一些相對穩(wěn)定的資源放到距離用戶最近的地方,一方面節(jié)省整個廣域網(wǎng)的帶寬消耗,另一方面可以提升用戶的訪問速度,改進用戶的體驗,一般會把靜態(tài)資源文件(圖片,腳本,靜態(tài)頁面等)存放在CDN中

Java分布式系統(tǒng)框架教程,架構設計

  1.當用戶訪問網(wǎng)站時,URL經(jīng)過本地DNS解析,DNS系統(tǒng)會最終將域名的解析權交割CNAME指向的CDN專用DNS服務器

  2.CDN的DNS服務器將CDN的全局負載均衡設備ip地址放回用戶

  3,用戶想CDN的全局負載均衡設備泛起內容URL訪問請求

  4,CDN全局負載均衡設備根據(jù)用戶IP地址,以及用戶請求的內容URL選在一臺用戶所屬區(qū)域的區(qū)域負載均衡設備,告訴用戶向這臺設備發(fā)起請求

  5.區(qū)域負載均衡設備為用戶選擇一臺合適的緩存服務器提供服務,選擇的依據(jù)包括:根據(jù)IP地址,判斷一臺服務器距離用戶最近

  根據(jù)用戶所請求的URL中攜帶的內容名稱,判斷那一臺服務器上有用戶所需要的內容,查詢各個服務器當前的負載狀況,判斷那一臺服務器尚有服務能力,基于上述條件綜合分析之后,區(qū)域負載均衡設備會向全局負載均衡設備返回一臺緩存服務器的IP地址

  6.全局負載均衡設備會把服務器的IP返回給用戶

  用戶向緩存服務器發(fā)起請求,緩存服務器響應用戶請求,將用戶所需內容傳送到用戶終端,如果這臺緩存服務器上并沒有用戶想要的內容,而區(qū)域均衡設備依然將他分配給用戶,那么這臺服務器就要向她的上一級緩存服務器請求內容,直至追溯到網(wǎng)站的源服務器將內容拉到本地。

  什么情況下使用CDN

  最適合那些不會經(jīng)常變化的內容,比如圖片js文件css

    以上就是動力節(jié)點Java培訓機構小編介紹的“Java分布式系統(tǒng)框架教程,架構設計”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 奇米777四色影视在线看 | 日韩免费一区二区三区 | 色婷婷.com | 成人国产在线视频在线观看 | 色综合网址 | 欧美一级免费片 | 国产亚洲精品自在久久77 | 国产精品久久精品福利网站 | 国产精品一区二区久久精品涩爱 | 天天射天天爱天天干 | 亚洲在线视频观看 | 青青爽国产手机在线观看免费 | 日韩欧美色视频在线观看 | 午夜精品影院 | 性欧美video视频另类 | 国产国语一级a毛片高清视频 | 香蕉色综合| 国产视频福利 | 妖精视频在线看免费视频 | 伊人色院成人蜜桃视频 | 亚洲第五色综合网 | 国产社区| 日韩欧美日本 | 国产一区二区视频在线播放 | 久久精品中文字幕有码日本 | 免费在线黄色网址 | 欧洲a级毛片| 911精品国产91久久久久 | 福利国产在线 | 日本一级在线播放线观看免 | 五月激激激综合网色播免费 | 国产亚洲天堂 | 国产在线拍国产拍拍偷 | 成人激情视频在线 | 国产精品免费一区二区三区 | 99热国产这里只有精品 | 奇米影视基地 | 五月婷婷激情在线 | 久色国产| 亚洲九色 | 国产精品香蕉一区二区三区 |