日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别

發(fā)布時間:2024/7/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

內(nèi)容大綱:

1.介紹Restful、SOAP、RPC、SOA以及微服務(wù)

2.重點(diǎn)談?wù)凷OA與微服務(wù)的區(qū)別

3.以及為什么要使用微服務(wù)架構(gòu)

什么是Restful

Restful是一種架構(gòu)設(shè)計(jì)風(fēng)格,提供了設(shè)計(jì)原則和約束條件,而不是架構(gòu),而滿足這些約束條件和原則的應(yīng)用程序或設(shè)計(jì)就是 Restful架構(gòu)或服務(wù)。

主要的設(shè)計(jì)原則

  • 資源與URI
  • 統(tǒng)一資源接口(HTTP方法如GET,PUT和POST)
  • 資源的表述
  • 資源的鏈接
  • 狀態(tài)的轉(zhuǎn)移

總之,RESTful的核心就是后端將資源發(fā)布為URI,前端通過URI訪問資源,并通過HTTP動詞表示要對資源進(jìn)行的操作。

什么是SOAP

簡單對象訪問協(xié)議是一種數(shù)據(jù)交換協(xié)議規(guī)范,是一種輕量的、簡單的、基于XML的協(xié)議的規(guī)范。SOAP協(xié)議和HTTP協(xié)議一樣,都是底層的通信協(xié)議,只是請求包的格式不同而已,SOAP包是XML格式的。

SOAP的消息是基于xml并封裝成了符合http協(xié)議,因此,它符合任何路由器、 防火墻或代理服務(wù)器的要求。

SOAP可以使用任何語言來完成,只要發(fā)送正確的soap請求即可,基于soap的服務(wù)可以在任何平臺無需修改即可正常使用。

RPC

RPC就是從一臺機(jī)器(客戶端)上通過參數(shù)傳遞的方式調(diào)用另一臺機(jī)器(服務(wù)器)上的一個函數(shù)或方法(可以統(tǒng)稱為服務(wù))并得到返回的結(jié)果。

RPC 會隱藏底層的通訊細(xì)節(jié)(不需要直接處理Socket通訊或Http通訊)

RPC 是一個請求響應(yīng)模型。客戶端發(fā)起請求,服務(wù)器返回響應(yīng)(類似于Http的工作方式)

RPC 在使用形式上像調(diào)用本地函數(shù)(或方法)一樣去調(diào)用遠(yuǎn)程的函數(shù)(或方法)。

4種典型RPC遠(yuǎn)程調(diào)用框架

(1)RMI實(shí)現(xiàn),利用java.rmi包實(shí)現(xiàn),基于Java遠(yuǎn)程方法協(xié)議(Java Remote Method Protocol)和java的原生序列化。

(2)Hessian,是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能。 基于HTTP協(xié)議,采用二進(jìn)制編解碼。

(3)thrift是一種可伸縮的跨語言服務(wù)的軟件框架。thrift允許你定義一個描述文件,描述數(shù)據(jù)類型和服務(wù)接口。依據(jù)該文件,編譯器方便地生成RPC客戶端和服務(wù)器通信代碼。

(4)dubbo,阿里的RPC框架。

(5)還有SpringCloud框架,微服務(wù)全家桶。為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)的一些工具,包括配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等。

微服務(wù)在本質(zhì)上,就是rpc。rpc有基于tcp的,http的,mq的等等。spring cloud是基于spring boot的,spring boot 實(shí)現(xiàn)的是http協(xié)議的rpc,算是rpc的一個子集。

什么是SOA

SOA(Service-Oriented Architecture),中文全稱:面向服務(wù)的架構(gòu)。

通俗點(diǎn)來講,SOA提倡將不同應(yīng)用程序的業(yè)務(wù)功能封裝成“服務(wù)”并宿主起來,通常以接口和契約的形式暴露并提供給外界應(yīng)用訪問(通過交換消息),達(dá)到不同系統(tǒng)可重用的目的。

SOA是一個組件模型,它能將不同的服務(wù)通過定義良好的接口和契約聯(lián)系起來。服務(wù)是SOA的基石。

微服務(wù)和SOA的區(qū)別

微服務(wù)是SOA架構(gòu)演進(jìn)的結(jié)果。兩者說到底都是對外提供接口的一種架構(gòu)設(shè)計(jì)方式,隨著互聯(lián)網(wǎng)的發(fā)展,復(fù)雜的平臺、業(yè)務(wù)的出現(xiàn),導(dǎo)致SOA架構(gòu)向更細(xì)粒度、更通過化程度發(fā)展,就成了所謂的微服務(wù)了。

總之,微服務(wù)是SOA發(fā)展出來的產(chǎn)物,它是一種比較現(xiàn)代化的細(xì)粒度的SOA實(shí)現(xiàn)方式。

SOA與微服務(wù)的區(qū)別在于如下幾個方面:

  • 微服務(wù)相比于SOA更加精細(xì),微服務(wù)更多的以獨(dú)立的進(jìn)程的方式存在,互相之間并無影響;
  • 微服務(wù)提供的接口方式更加通用化,例如HTTP RESTful方式,各種終端都可以調(diào)用,無關(guān)語言、平臺限制;
  • 微服務(wù)更傾向于分布式去中心化的部署方式,在互聯(lián)網(wǎng)業(yè)務(wù)場景下更適合。
  • 為什么要使用微服務(wù)?

    技術(shù)為業(yè)務(wù)而生,架構(gòu)也為業(yè)務(wù)而出現(xiàn),當(dāng)然SOA和微服務(wù)也是因?yàn)闃I(yè)務(wù)的發(fā)展而出現(xiàn)。出現(xiàn)SOA和微服務(wù)框架與業(yè)務(wù)的發(fā)展、平臺的壯大密不可分,下面借用dubbo的網(wǎng)站架構(gòu)發(fā)展圖和說明:

    • 單一應(yīng)用架構(gòu)
    • 當(dāng)網(wǎng)站流量很小時,只需一個應(yīng)用,將所有功能都部署在一起,以減少部署節(jié)點(diǎn)和成本。
    • 此時,用于簡化增刪改查工作量的?數(shù)據(jù)訪問框架(ORM)?是關(guān)鍵。
    • 垂直應(yīng)用架構(gòu)
    • 當(dāng)訪問量逐漸增大,單一應(yīng)用增加機(jī)器帶來的加速度越來越小,將應(yīng)用拆成互不相干的幾個應(yīng)用,以提升效率。
    • 此時,用于加速前端頁面開發(fā)的?Web框架(MVC)?是關(guān)鍵。
    • 分布式服務(wù)架構(gòu)
    • 當(dāng)垂直應(yīng)用越來越多,應(yīng)用之間交互不可避免,將核心業(yè)務(wù)抽取出來,作為獨(dú)立的服務(wù),逐漸形成穩(wěn)定的服務(wù)中心,使前端應(yīng)用能更快速的響應(yīng)多變的市場需求。
    • 此時,用于提高業(yè)務(wù)復(fù)用及整合的?分布式服務(wù)框架(RPC)?是關(guān)鍵。
    • 流動計(jì)算架構(gòu)
    • 當(dāng)服務(wù)越來越多,容量的評估,小服務(wù)資源的浪費(fèi)等問題逐漸顯現(xiàn),此時需增加一個調(diào)度中心基于訪問壓力實(shí)時管理集群容量,提高集群利用率。
    • 此時,用于提高機(jī)器利用率的?資源調(diào)度和治理中心(SOA)?是關(guān)鍵。

    平臺隨著業(yè)務(wù)的發(fā)展從 All in One 環(huán)境就可以滿足業(yè)務(wù)需求(以Java來說,可能只是一兩個war包就解決了)。

    發(fā)展到需要拆分多個應(yīng)用,并且采用MVC的方式分離前后端,加快開發(fā)效率;在發(fā)展到服務(wù)越來越多,不得不將一些核心或共用的服務(wù)拆分出來,其實(shí)發(fā)展到此階段,如果服務(wù)拆分的足夠精細(xì),并且獨(dú)立運(yùn)行,我覺得就可以將之理解為一個微服務(wù)了。

    你可能也喜歡:

  • 阿里P8架構(gòu)師談:主流RPC框架詳解,以及與SOA、SOAP、REST的區(qū)別
  • 阿里P8架構(gòu)師談:Spring Cloud與Dubbo的詳細(xì)比較
  • 阿里P8架構(gòu)師談:從單體架構(gòu)、到SOA、再到微服務(wù)的架構(gòu)設(shè)計(jì)詳解
  • 阿里P8架構(gòu)師談:微服務(wù)Dubbo和SpringCloud架構(gòu)設(shè)計(jì)、優(yōu)劣勢比較
  • 阿里P8架構(gòu)師談:Zookeeper的原理和架構(gòu)設(shè)計(jì),以及應(yīng)用場景
  • Spring Cloud的核心成員、以及架構(gòu)實(shí)現(xiàn)詳細(xì)介紹

  • 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。