https://springcloud.cc/spring-cloud-dalston.htmlhtml
SOA架構特確點:web
1,依賴與中心化服務發現機制spring
2,SOA架構採用SOAP協議(HTTP+XML).XML傳輸協議比較佔用寬帶。整個XML報文中有很是大的冗餘數據,因此在微服務中以json輕量級方式替代xml報文傳輸數據庫
3,服務管理很是混亂,缺乏服務管理和治理設施不完善json
爲服務架構是從SOA架構演變而來的,比SOA架構力度更精細。每一個服務獨立部署,爲服務架構更加體現輕量級,RESTFUL提供API,HTTP+JSON。緩存
微服務架構從SOA架構演變而來restful
服務化功能自己在soa這層已經實現,只不過爲服務架構在單獨服務層有進行細分服務架構
爲服務全家桶:併發
分佈式配置中心負載均衡
分佈式鎖
分佈式跟蹤
分佈式服務治理
分佈式任務調度平臺
傳統的SSH架構,分爲三層架構 web控制層、業務邏輯層、數據庫訪問層。
傳統架構也就是單點應用,就是你們在剛開始初學JavaEE技術的時候SSH架構或者SSM架構,業務沒有進行拆分,都寫同一個項目工程裏面,通常是適合於我的或者是小團隊開發。
這種架構模式,一旦有一個模塊致使服務不可用,可能會影響整個項目。
分佈式架構基於傳統架構演變過來,將傳統的單體項目以項目模塊進行拆分,拆分爲會員項目、訂單項目、支付項目、優惠券項目等,從而下降耦合度,這種項目架構模式慢慢開始適合於互聯網公司規模人數開發。
SOA架構表明面向與服務架構,俗稱服務化,通俗的理解爲面向與業務邏輯層開發,將共同的業務邏輯抽取出來造成一個服務,提供給其餘服務接口進行調用,服務與服務之間調用使用rpc遠程技術。
SOA架構特色:
1.SOA架構中一般使用XML方式實現通信,在高併發狀況下XML比較冗餘會帶來極大的影響,因此最後微服務架構中採用JSON替代xml方式
2.SOA架構的底層實現經過WebService和ESB(xml與中間件混合物),Web Service技術是SOA服務化的一種實現方式,WebService底層採用soap協議進行通信,soap協議就是Http或者是Https通道傳輸XML數據實現的協議。
微服務架構基於SOA架構演變過來的
在傳統的WebService架構中有以下問題:
微服務架是從SOA架構演變過來,比SOA架構粒度會更加精細,讓專業的人去作專業的事情(專一),目的提升效率,每一個服務於服務之間互不影響,微服務架構中,每一個服務必須獨立部署,互不影響,微服務架構更加體現輕巧、輕量級,是適合於互聯網公司敏捷開發。
微服務架構倡導應用程序設計程多個獨立、可配置、可運行和可微服務的子服務。
服務與服務通信協議採用Http協議,使用restful風格API形式來進行通信,數據交換格式輕量級json格式通信,整個傳輸過程當中,採用二進制,因此http協議能夠跨語言平臺,而且能夠和其餘不一樣的語言進行相互的通信,因此不少開放平臺都採用http協議接口。
1.微服務把每個職責單一功能存放在獨立的服務中
2.每一個服務運行在單獨的進程中
3.每一個服務有本身獨立數據庫存儲、實際上有本身獨立的緩存、數據庫、消息隊列等資源。
1.微服務架構基於 SOA架構 演變過來,繼承 SOA架構的優勢,在微服務架構中去除 SOA 架構中的 ESB 消息總線,採用 http+json(restful)進行傳輸。
2.微服務架構比 SOA 架構粒度會更加精細,讓專業的人去作專業的事情(專一),目的提升效率,每一個服務於服務之間互不影響,微服務架構中,每一個服務必須獨立部署,微服務架構更加輕巧,輕量級。
3.SOA 架構中可能數據庫存儲會發生共享,微服務強調獨每一個服務都是單獨數據庫,保證每一個服務於服務之間互不影響。
4.項目體現特徵微服務架構比 SOA 架構更加適合與互聯網公司敏捷開發、快速迭代版本,由於粒度很是精細。
由於SpringCloud出現,對微服務技術提供了很是大的幫助,由於SpringCloud 提供了一套完整的微服務解決方案,不像其餘框架只是解決了微服務中某個問題。
服務治理: 阿里巴巴開源的Dubbo和噹噹網在其基礎上擴展的Dubbox、Eureka、Apache 的Consul等
分佈式配置中心: 百度的disconf、Netfix的Archaius、360的QConf、SpringCloud、攜程的阿波羅等。
分佈式任務:xxl-job、elastic-job、springcloud的task等。
服務跟蹤:京東的hyra、springcloud的sleuth等
SpringCloud是基於SpringBoot基礎之上開發的微服務框架,SpringCloud是一套目前很是完整的微服務解決方案框架,其內容包含服務治理、註冊中心、配置管理、斷路器、智能路由、微代理、控制總線、全局鎖、分佈式會話等。
SpringCloud包含衆多的子項目
SpringCloud config 分佈式配置中心
SpringCloud netflix 核心組件
Eureka:服務治理 註冊中心
Hystrix:服務保護框架
Ribbon:客戶端負載均衡器
Feign:基於ribbon和hystrix的聲明式服務調用組件
Zuul: 網關組件,提供智能路由、訪問過濾等功能。
訪問先到網管 而後 去Eureka server 獲取服務地址 Hystrix保護服務