webservice框架_聊聊从RPC到服务治理框架
與一般的HTTP REST框架不同,一個可用的RPC架構(gòu)不僅解決了遠(yuǎn)程調(diào)用問題,也提供了用于服務(wù)注冊和服務(wù)發(fā)現(xiàn)的基礎(chǔ)設(shè)施,比如RMI(Java語言的RPC)里的RMI Registry,如下圖所示。
在使用RMI時,我們所開發(fā)的“遠(yuǎn)程對象”(RemoteObject)都需要被注冊(Binding)到Registry里,客戶端(Client)則首先需要通過Registry的接口查詢到遠(yuǎn)程對象的訪問地址,然后才能發(fā)起對遠(yuǎn)程對象的“遠(yuǎn)程過程調(diào)用”,將這種模式表達(dá)為更抽象的模型,就是如下圖所示的服務(wù)注冊和服務(wù)發(fā)現(xiàn)的通用模型。
從RPC和COBRA發(fā)展而來的服務(wù)注冊與服務(wù)發(fā)現(xiàn)模型,被后來者奉為經(jīng)典。如下所示是ZeroC Ice的實現(xiàn)架構(gòu)圖,其中注冊表實現(xiàn)了主從復(fù)制的特性,避免了單點故障。
服務(wù)注冊與服務(wù)發(fā)現(xiàn)的模型在Web Service時代被提到了一個很高的境界,Web Service的核心架構(gòu)一般如下圖所示。
在Web Service的技術(shù)架構(gòu)中,用XML定義的編程語言中立的服務(wù)接口描述語言WSDL其實來自COBRA中的IDL,基于Socket的復(fù)雜RPC調(diào)用被簡單和容易掌握的HTTP上的SOAP調(diào)用所替換。
此外,為了應(yīng)對不同開發(fā)商的“互聯(lián)互不同”及“以自我為中心”的思想,IBM倡導(dǎo)了全球服務(wù)注冊中心(UDDIRegistry)的理念,希望各個廠商都能將自己的Web Service注冊到一起,全球聯(lián)網(wǎng),服務(wù)無國界,這次嘗試以失敗告終,無數(shù)公司不得不重復(fù)開發(fā)并不很復(fù)雜的軟件系統(tǒng)。
后來出現(xiàn)了SOA這個新概念,雖然業(yè)界對SOA這個概念有各種“詮釋”,但“面向服務(wù)的架構(gòu)”即以服務(wù)(Service)為中心的分布式架構(gòu)深入人心,如下圖所示是一個理想化的大一統(tǒng)的SOA架構(gòu)藍(lán)圖,我們看到服務(wù)注冊與服務(wù)發(fā)布模型及RPC技術(shù)依然是SOA的技術(shù)核心。
服務(wù)注冊與服務(wù)發(fā)布模型成為后來通用分布式系統(tǒng)架構(gòu)的核心和關(guān)鍵技術(shù)基礎(chǔ),也被賦予一個新概念——服務(wù)治理框架。
服務(wù)治理框架這個概念與SOA在本質(zhì)上屬于一類,它的一個典型代表是曾經(jīng)熱門的開源項目——Dubbo。下面給出了Dubbo的原理概念圖,可以看出,相對于SOA架構(gòu),在Dubbo的服務(wù)治理框架中最大的一個亮點是增加了服務(wù)監(jiān)控這個必要的運維特性。
Dubbo同時提出了很多看起來比較吸引人的新特性,比如服務(wù)編排、服務(wù)降級、訪問規(guī)則控制,但實際上這并不是核心。
作為一個分布式系統(tǒng)的重要基礎(chǔ)設(shè)施,穩(wěn)定、高性能的RPC通信及多語言支持才是其關(guān)鍵的核心指標(biāo)。
總結(jié)
以上是生活随笔為你收集整理的webservice框架_聊聊从RPC到服务治理框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php版本最低要求:5.4_Zabbix
- 下一篇: 和gdi绘图效率比较_堪称效率神器!5款