SOA與微服務

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架構

 

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架構中有以下問題:

  1. 依賴中心化服務發現機制
  2. 使用Soap通信協議,一般使用XML格式來序列化通信數據,xml格式很是喜歡重,比較佔寬帶傳輸。
  3. 服務化管理和治理設施不完善

 

漫談微服務架構

什麼是微服務

微服務架是從SOA架構演變過來,比SOA架構粒度會更加精細,讓專業的人去作專業的事情(專一),目的提升效率,每一個服務於服務之間互不影響,微服務架構中,每一個服務必須獨立部署,互不影響,微服務架構更加體現輕巧、輕量級,是適合於互聯網公司敏捷開發。

微服務架構特徵

 

微服務架構倡導應用程序設計程多個獨立、可配置、可運行和可微服務的子服務。

服務與服務通信協議採用Http協議,使用restful風格API形式來進行通信,數據交換格式輕量級json格式通信,整個傳輸過程當中,採用二進制,因此http協議能夠跨語言平臺,而且能夠和其餘不一樣的語言進行相互的通信,因此不少開放平臺都採用http協議接口。

 

微服務架構如何拆分

1.微服務把每個職責單一功能存放在獨立的服務中

2.每一個服務運行在單獨的進程中

3.每一個服務有本身獨立數據庫存儲、實際上有本身獨立的緩存、數據庫、消息隊列等資源。

 

微服務架構與SOA架構區別

1.微服務架構基於 SOA架構 演變過來,繼承 SOA架構的優勢,在微服務架構中去除 SOA 架構中的 ESB 消息總線,採用 http+json(restful)進行傳輸。

2.微服務架構比 SOA 架構粒度會更加精細,讓專業的人去作專業的事情(專一),目的提升效率,每一個服務於服務之間互不影響,微服務架構中,每一個服務必須獨立部署,微服務架構更加輕巧,輕量級。

3.SOA 架構中可能數據庫存儲會發生共享,微服務強調獨每一個服務都是單獨數據庫,保證每一個服務於服務之間互不影響。

4.項目體現特徵微服務架構比 SOA 架構更加適合與互聯網公司敏捷開發、快速迭代版本,由於粒度很是精細。

 

 

 

爲何選擇SpringCloud

由於SpringCloud出現,對微服務技術提供了很是大的幫助,由於SpringCloud 提供了一套完整的微服務解決方案,不像其餘框架只是解決了微服務中某個問題。

 

服務治理: 阿里巴巴開源的Dubbo和噹噹網在其基礎上擴展的Dubbox、Eureka、Apache 的Consul等

分佈式配置中心: 百度的disconf、Netfix的Archaius、360的QConf、SpringCloud、攜程的阿波羅等。

分佈式任務:xxl-job、elastic-job、springcloud的task等。

服務跟蹤:京東的hyra、springcloud的sleuth等

 

SpringCloud簡介

 

SpringCloud是基於SpringBoot基礎之上開發的微服務框架,SpringCloud是一套目前很是完整的微服務解決方案框架,其內容包含服務治理、註冊中心、配置管理、斷路器、智能路由、微代理、控制總線、全局鎖、分佈式會話等。

 

SpringCloud包含衆多的子項目

SpringCloud config 分佈式配置中心

SpringCloud netflix 核心組件

Eureka:服務治理  註冊中心

Hystrix:服務保護框架

Ribbon:客戶端負載均衡器

Feign:基於ribbon和hystrix的聲明式服務調用組件

Zuul: 網關組件,提供智能路由、訪問過濾等功能。

 

訪問先到網管 而後 去Eureka server 獲取服務地址   Hystrix保護服務

相關文章
相關標籤/搜索