OSGI與分布式比較

OSGI(Open Services Gateway Initiative) Java動(dòng)態(tài)化模塊化系統(tǒng)的一系列規(guī)范尊浓。

個(gè)人理解為支持模塊熱部署,方便模塊管理纯衍。

OSGI :
bundle是OSGi的部署(和模塊)單元。在OSGi運(yùn)行時(shí)苗胀,bundle具有如下三種狀態(tài):installed襟诸,resolved,active基协。在Spring中最主要的單元模塊是應(yīng)用程序上下文(application context)歌亲,在應(yīng)用程序上下文里包括了一些bean(被Spring的應(yīng)用程序上下文所管理的對(duì)象)。在OSGi bundle和Spring應(yīng)用程序上下文之間有很自然的緊密聯(lián)系澜驮。
使用Spring Dynamic Modules(Spring DM)陷揪,一個(gè)active的bundle可以包含一個(gè)Spring 應(yīng)用程序上下文,它負(fù)責(zé)在bundle里實(shí)例化杂穷、配置悍缠、組裝和裝飾對(duì)象(bean)。這些bean即可作為OSGi服務(wù)輸出而提供給其他bundle耐量,也能透明地注入其他OSGi服務(wù)的引用飞蚓。

分布式:
1、系統(tǒng)間相互隔離廊蜒,系統(tǒng)之間的交互通過(guò)RPC來(lái)調(diào)用趴拧,即提供方提供接口及實(shí)現(xiàn),調(diào)用方直接調(diào)用山叮,阿里采用的是sofa框架集成的tr著榴,ws等。

2屁倔、另一種為消息模式脑又,一方作為消息發(fā)送端發(fā)送消息,一方作為消息接收端接收消息(發(fā)送的消息體對(duì)象必須序列化),消息中間件:阿里采用msgbroker(訂閱關(guān)系管理及消息轉(zhuǎn)發(fā))」业現(xiàn)市面使用zookeeper叔壤。


以下轉(zhuǎn)載分布式RPC框架性能大比拼
Dubbo 是阿里巴巴公司開(kāi)源的一個(gè)Java高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過(guò)高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能口叙,可以和 Spring框架無(wú)縫集成炼绘。不過(guò),略有遺憾的是妄田,據(jù)說(shuō)在淘寶內(nèi)部俺亮,dubbo由于跟淘寶另一個(gè)類(lèi)似的框架HSF(非開(kāi)源)有競(jìng)爭(zhēng)關(guān)系,導(dǎo)致dubbo團(tuán)隊(duì)已經(jīng)解散(參見(jiàn)http://www.oschina.net/news/55059/druid-1-0-9 中的評(píng)論)疟呐,反到是當(dāng)當(dāng)網(wǎng)的擴(kuò)展版本仍在持續(xù)發(fā)展脚曾,墻內(nèi)開(kāi)花墻外香。其它的一些知名電商如當(dāng)當(dāng)启具、京東本讥、國(guó)美維護(hù)了自己的分支或者在dubbo的基礎(chǔ)開(kāi)發(fā),但是官方的庫(kù)缺乏維護(hù)鲁冯,相關(guān)的依賴(lài)類(lèi)比如Spring拷沸,Netty還是很老的版本(Spring 3.2.16.RELEASE, netty 3.2.5.Final),倒是有些網(wǎng)友寫(xiě)了升級(jí)Spring和Netty的插件。

Motan是新浪微博開(kāi)源的一個(gè)Java 框架薯演。它誕生的比較晚撞芍,起于2013年,2016年5月開(kāi)源跨扮。Motan 在微博平臺(tái)中已經(jīng)廣泛應(yīng)用序无,每天為數(shù)百個(gè)服務(wù)完成近千億次的調(diào)用。

rpcx是Go語(yǔ)言生態(tài)圈的Dubbo衡创, 比Dubbo更輕量帝嗡,實(shí)現(xiàn)了Dubbo的許多特性,借助于Go語(yǔ)言?xún)?yōu)秀的并發(fā)特性和簡(jiǎn)潔語(yǔ)法璃氢,可以使用較少的代碼實(shí)現(xiàn)分布式的RPC服務(wù)丈探。

gRPC是Google開(kāi)發(fā)的高性能、通用的開(kāi)源RPC框架拔莱,其由Google主要面向移動(dòng)應(yīng)用開(kāi)發(fā)并基于HTTP/2協(xié)議標(biāo)準(zhǔn)而設(shè)計(jì)碗降,基于ProtoBuf(Protocol Buffers)序列化協(xié)議開(kāi)發(fā),且支持眾多開(kāi)發(fā)語(yǔ)言塘秦。本身它不是分布式的讼渊,所以要實(shí)現(xiàn)上面的框架的功能需要進(jìn)一步的開(kāi)發(fā)。

thrift是Apache的一個(gè)跨語(yǔ)言的高性能的服務(wù)框架尊剔,也得到了廣泛的應(yīng)用爪幻。


以下內(nèi)容轉(zhuǎn)載自 osgi確實(shí)面臨雞肋之嫌

osgi最明顯的缺陷

bundle盡管可以為隔離的服務(wù)建立獨(dú)立生命周期管理的熱部署方式,以及明確的服務(wù)導(dǎo)出和導(dǎo)入依賴(lài)能力,但是其最終基于jvm挨稿,無(wú)法對(duì)bundle對(duì)應(yīng)的服務(wù)實(shí)現(xiàn)計(jì)算資源的隔離仇轻,一個(gè)服務(wù)的故障依然會(huì)導(dǎo)致整個(gè)jvm crush,這使得在一個(gè)運(yùn)行時(shí)的osgi上部署模塊級(jí)服務(wù)只獲得了模塊部署和啟停隔離,服務(wù)明確依賴(lài)的好處奶甘,但是沒(méi)辦法實(shí)現(xiàn)計(jì)算節(jié)點(diǎn)的線(xiàn)性擴(kuò)展篷店,在當(dāng)前分布式,微服務(wù)臭家,網(wǎng)絡(luò)計(jì)算的趨勢(shì)下疲陕,使得osgi只適合構(gòu)建單一服務(wù)節(jié)點(diǎn)的內(nèi)部應(yīng)用,但是其分離的bundle的部署負(fù)擔(dān)對(duì)于微服務(wù)架構(gòu)來(lái)說(shuō)钉赁,有點(diǎn)用大炮打蚊子的臭味蹄殃。

推薦的應(yīng)用架構(gòu)方式

因此必須將基于進(jìn)程間構(gòu)建的分布式應(yīng)用和進(jìn)程內(nèi)的單一應(yīng)用分開(kāi)來(lái)架構(gòu)設(shè)計(jì),對(duì)于進(jìn)程間構(gòu)建的分布式應(yīng)用你踩,采取基于soa的理念進(jìn)行容器模式的服務(wù)部署模式诅岩,服務(wù)交互基于遠(yuǎn)程服務(wù)交互相關(guān)協(xié)議,采用可忍受網(wǎng)絡(luò)失敗的架構(gòu)設(shè)計(jì)原則带膜;

對(duì)于進(jìn)程內(nèi)的應(yīng)用按厘,如果需要模塊級(jí)的獨(dú)立生命周期熱部署和模塊管理,可以考慮采用OSGI,但是钱慢,容器內(nèi)基于本地進(jìn)程間通信的模塊交付方式不僅能提供同樣的獨(dú)立生命熱部署和模塊管理,而且具備隨時(shí)脫離出去部署成單獨(dú)容器級(jí)服務(wù)應(yīng)用的能力卿堂,加速進(jìn)程間的服務(wù)交付提供的整體管理和監(jiān)視環(huán)境基礎(chǔ).

osgi還有用武只地嗎束莫?當(dāng)然我前述都是以構(gòu)建分布式企業(yè)和面向互聯(lián)網(wǎng)這類(lèi)應(yīng)用為前提來(lái)討論的,對(duì)于嵌入式的jvm應(yīng)用草描,比如著名的osgi案例寶馬的車(chē)載系統(tǒng)览绿,osgi依然是最好的原則,不過(guò)我懷疑基于andriod系統(tǒng)的機(jī)制構(gòu)建類(lèi)似應(yīng)用穗慕,osgi的采用依然值得商榷饿敲。因此,osgi確實(shí)面臨雞肋之嫌逛绵。

分布式應(yīng)用的關(guān)鍵技術(shù)點(diǎn)及解決思路匯總

為什么要分布

為得到吞吐量和可靠性及故障隔離的架構(gòu)屬性怀各,需要將傳統(tǒng)的單一應(yīng)用按照業(yè)務(wù)邏輯進(jìn)行垂直拆分以實(shí)現(xiàn)構(gòu)建工程的獨(dú)立,部署的獨(dú)立术浪。

分布失去了什么

進(jìn)程內(nèi)服務(wù)調(diào)用的便利性和可測(cè)試性

代價(jià)巨大的資源分布導(dǎo)致的跨資源事務(wù)能力

部署和運(yùn)維工作量指數(shù)級(jí)增長(zhǎng)

不可靠網(wǎng)絡(luò)的應(yīng)用狀態(tài)一致性

及其復(fù)雜的分布式應(yīng)用依賴(lài)關(guān)系

分布式關(guān)鍵技術(shù)選擇

容器級(jí)的分布式應(yīng)用工程和部署管理瓢对;

可視化的分布式應(yīng)用及服務(wù)監(jiān)視管理視圖;

前端和后端應(yīng)用的分離胰苏;

客戶(hù)端路由

服務(wù)注冊(cè)中心

分布式協(xié)調(diào)

消息中件間

分布式存儲(chǔ)

集成框架

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末硕蛹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惊科,死亡現(xiàn)場(chǎng)離奇詭異术唬,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)搏明,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人琉兜,你說(shuō)我怎么就攤上這事”胁#” “怎么了豌蟋?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)桑滩。 經(jīng)常有香客問(wèn)我梧疲,道長(zhǎng),這世上最難降的妖魔是什么运准? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任幌氮,我火速辦了婚禮,結(jié)果婚禮上胁澳,老公的妹妹穿的比我還像新娘该互。我一直安慰自己,他們只是感情好韭畸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布宇智。 她就那樣靜靜地躺著,像睡著了一般胰丁。 火紅的嫁衣襯著肌膚如雪随橘。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天锦庸,我揣著相機(jī)與錄音机蔗,去河邊找鬼。 笑死甘萧,一個(gè)胖子當(dāng)著我的面吹牛萝嘁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扬卷,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼酿愧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了邀泉?” 一聲冷哼從身側(cè)響起嬉挡,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钝鸽,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后庞钢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拔恰,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年基括,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了颜懊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡风皿,死狀恐怖河爹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桐款,我是刑警寧澤咸这,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站魔眨,受9級(jí)特大地震影響媳维,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜遏暴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一侄刽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朋凉,春花似錦州丹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至盖灸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磺芭,已是汗流浹背赁炎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钾腺,地道東北人徙垫。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像放棒,于是被迫代替她去往敵國(guó)和親姻报。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理间螟,服務(wù)發(fā)現(xiàn)吴旋,斷路器损肛,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評(píng)論 6 342
  • 本文是對(duì)killko一些博客的筆記,可以在《不可錯(cuò)過(guò)的OSGi入門(mén)學(xué)習(xí)資源》中找到荣瑟,包括: 《走近Java模塊化系...
    天未的博客閱讀 2,319評(píng)論 1 9
  • 場(chǎng)景 單機(jī)應(yīng)用已經(jīng)越來(lái)越不能符合目前越來(lái)越復(fù)雜的產(chǎn)品需求了治拿。即使是小型應(yīng)用,至少也需要部署2臺(tái)以上的服務(wù)器做集群笆焰。...
    IvanEye閱讀 3,603評(píng)論 3 11
  • 今晚躺在床上劫谅,有些惆悵,更多的是自責(zé)嚷掠,晚上給牛大補(bǔ)課忍不住打他n次捏检。 其實(shí)我就是一個(gè)偶爾會(huì)回家的姑姑,兩個(gè)侄子平時(shí)...
    不貪睡的牛閱讀 148評(píng)論 1 0