spring cloud 阿里巴巴

微服務(wù)架構(gòu)演變過程

傳統(tǒng)單體架構(gòu) =》 分布式架構(gòu) =》 soa面向服務(wù)架構(gòu) =》 微服務(wù)架構(gòu)

傳統(tǒng)單體架構(gòu)

傳統(tǒng)單體架構(gòu)就是單點(diǎn)應(yīng)用室囊,也就是在早期開發(fā)學(xué)習(xí)的ssm或ssh整合項目采用分層架構(gòu)模式、數(shù)據(jù)庫訪問層秘噪、業(yè)務(wù)邏輯層狸吞、控制層,從前端到后端所有代碼都是一個人寫的

cn.itycu.controler ---springmvc 視圖層 jsp/ftl
cn.itycu.service ---業(yè)務(wù)邏輯層
cn.itycu.dao ---數(shù)據(jù)庫訪問層
將所有的代碼都放入到同一個項目中指煎,部署在同一個tomcat中
  • 該架構(gòu)模式存在的優(yōu)缺點(diǎn)
    • 優(yōu)點(diǎn):開發(fā)簡單蹋偏、運(yùn)維簡單
    • 缺點(diǎn):該架構(gòu)模式?jīng)]有對業(yè)務(wù)邏輯進(jìn)行拆分威始,這樣子耦合度非常高黎棠,只適合小團(tuán)隊或者個人形式開發(fā)镰绎,不適合團(tuán)隊模式協(xié)同工作開發(fā)畴栖,維護(hù)性很難,如果系統(tǒng)中某個模塊出現(xiàn)問題挪挤,會導(dǎo)致整個系統(tǒng)無法使用扛门。
    • 應(yīng)用場景:政府項目论寨、管理系統(tǒng)爽茴、crm室奏、oa,適合于小團(tuán)隊或個人進(jìn)行開發(fā)

分布式架構(gòu)

分布式架構(gòu)模式基于傳統(tǒng)的架構(gòu)模式演變過來昌简,將我們傳統(tǒng)的單點(diǎn)系統(tǒng)實(shí)現(xiàn)根據(jù)業(yè)務(wù)拆分。會拆分為會員系統(tǒng)谦疾、訂單系統(tǒng)念恍、支付系統(tǒng)峰伙、秒殺系統(tǒng)等该默。從而降低整個項目的耦合度权均,這種架構(gòu)模式開始慢慢適合于互聯(lián)網(wǎng)公司開發(fā)。

會員系統(tǒng) memner.itycu.cn
支付系統(tǒng) pay.itycu.cn
項目命名為系統(tǒng)意味:包含視圖層和服務(wù)層

soa面向服務(wù)架構(gòu)

sso單點(diǎn)登錄系統(tǒng)恋沃,抽離出通用服務(wù)
soa面向服務(wù)架構(gòu)基于分布式架構(gòu)模式演變過來囊咏,俗稱服務(wù)化梅割,也就是面向于服務(wù)與接口開發(fā)(服務(wù)開發(fā))户辞,將共同存在的業(yè)務(wù)邏輯抽取成一個公共服務(wù)癞谒,提供給其他接口實(shí)現(xiàn)調(diào)用弹砚,服務(wù)與服務(wù)之間采用rpc遠(yuǎn)程調(diào)用技術(shù)。

  • 服務(wù):只是有接口朱沃、沒有視圖層
cn.itycu.service
cn.itycu.dao
  • 能夠解決我們的代碼冗余性問題

  • soa架構(gòu)模式特點(diǎn)

    • soa架構(gòu)模式傳輸協(xié)議采用soap協(xié)議(HTTP/https+xml)實(shí)現(xiàn)傳輸逗物,在高并發(fā)情況下實(shí)現(xiàn)通訊協(xié)議存在大量的冗余性傳輸敬察,而且非常占用帶寬莲祸。所以后來微服務(wù)架構(gòu)中使用json替代了xml锐帜。
    • soa架構(gòu)模式實(shí)現(xiàn)方案webservice或者esb企業(yè)服務(wù)總線畜号,底層采用soap傳輸協(xié)議。
      • 傳統(tǒng)政府蛮拔、銀行項目還是保留的在使用webservice
      • webservice架構(gòu)模式
      • wsdl組件表示接口信息建炫、方法疼蛾、調(diào)用地址、參數(shù)
  • soa架構(gòu)模式存在缺點(diǎn)

    • 采用soap協(xié)議實(shí)現(xiàn)通訊衍慎,xml傳輸非常重稳捆,效率比較低麦轰。
    • 服務(wù)化管理和治理設(shè)施不夠完善
    • 依賴于中心服務(wù)發(fā)現(xiàn)機(jī)制
    • 不適合前后端分離架構(gòu)模式
      • 前后端分離就是對我們控制層和業(yè)務(wù)邏輯實(shí)現(xiàn)區(qū)分,前端控制可以采用vue調(diào)用我們后端接口(http+json)

微服務(wù)架構(gòu)

微服務(wù)架構(gòu)模式基于soa架構(gòu)模式演變過來的驯嘱,比soa架構(gòu)迷失對服務(wù)拆分力度會更加精細(xì)鞠评,采用前后端分離模式讓專業(yè)的人做專業(yè)的事(專注)剃幌,目的可以實(shí)現(xiàn)高效率開發(fā)。微服務(wù)架構(gòu)中负乡,每個服務(wù)之間都是互補(bǔ)影響抖棘,每個服務(wù)必須要獨(dú)立部署、運(yùn)維最岗、互不影響朝捆,微服務(wù)架構(gòu)模式非常輕巧芙盘,輕量級儒老、適合于互聯(lián)網(wǎng)公司開發(fā)模式。
服務(wù)與服務(wù)之間通訊的協(xié)議采用restful形式淘这,數(shù)據(jù)交換格式采用http+json格式實(shí)現(xiàn)傳輸
整個過程中巩剖,采用二進(jìn)制佳魔,所以http協(xié)議可以實(shí)現(xiàn)跨語言的平臺,并且和其他語言實(shí)現(xiàn)通訊宁脊,所以為什么開放都是采用http+json格式傳輸

  • SOA架構(gòu)與微服務(wù)架構(gòu)有哪些區(qū)別

    • 通訊協(xié)議
      • 微服務(wù)架構(gòu)基于soa架構(gòu)模式演變過來榆苞,繼承了soa架構(gòu)的優(yōu)點(diǎn)坐漏,在微服務(wù)架構(gòu)中去除soa架構(gòu)中soap協(xié)議和esp企業(yè)服務(wù)總線赊琳。改為http+json形式傳輸我們的數(shù)據(jù)。
        • esb企業(yè)服務(wù)總線解決多系統(tǒng)間跨語言無法實(shí)現(xiàn)通訊的問題板丽,對我們的數(shù)據(jù)實(shí)現(xiàn)轉(zhuǎn)換埃碱,可以提供可靠的消息傳輸。一般情況我們采用http+json傳輸數(shù)據(jù),不需要esb對數(shù)據(jù)進(jìn)行轉(zhuǎn)換婶博。
    • 服務(wù)拆分力度
      • 微服務(wù)架構(gòu)模式比soa架構(gòu)模式拆分力度更加精細(xì)凡人,提倡讓專業(yè)的人做專業(yè)的事叹阔,目的是實(shí)現(xiàn)高效的開發(fā),每個服務(wù)與服務(wù)之間互不影響岸晦,每個服務(wù)都是單獨(dú)獨(dú)立數(shù)據(jù)庫睛藻、redis連接、MQ等冈在。并且都是實(shí)現(xiàn)獨(dú)立部署包券,整個微服務(wù)架構(gòu)更加輕量級炫贤。
      • 在soa架構(gòu)中兰珍,有可能純在多個服務(wù)共享同一個數(shù)據(jù)庫,但是微服務(wù)架構(gòu)必須強(qiáng)調(diào)每個都是獨(dú)立數(shù)據(jù)庫部署汰寓,互補(bǔ)影響有滑。
    • 迭代
      • 微服務(wù)架構(gòu)模式比soa架構(gòu)模式毛好,更加適合于互聯(lián)網(wǎng)公司敏捷苛秕、高效、快速迭代版本開發(fā)吼驶,因為力度非常精細(xì)蟹演。
  • 微服務(wù)架構(gòu)中可能會存在哪些問題

    • 分布式事務(wù)解決方案(rabbitmq酒请、rocketmq事務(wù)消息羞反、lcn(淘汰)苟弛、setata)最終一級概念
    • 分布式任務(wù)調(diào)度平臺(xxl-job阁将、alibabacloud scheduler做盅、elastic-job)
    • 分布式服務(wù)注冊與發(fā)現(xiàn)(eureka、consul亭敢、zookeeper帅刀、nacos)
    • 分布式日志采集系統(tǒng)elk+kafka
    • 分布式服務(wù)最綜與調(diào)用鏈系統(tǒng)zipkin
    • 分布式服務(wù)配置中心(spring cloud config/攜程阿波羅/nacos/disconfig)

微服務(wù)架構(gòu)中有個非常重要的概念:獨(dú)立部署扣溺、可配置锥余、動態(tài)化驱犹。

為什么要使用到spring cloud

  • spring cloud 并不是一個rpc遠(yuǎn)程調(diào)用框架雄驹,而是一個微服務(wù)全家桶的解決方案的框架。理念就是一條龍服務(wù)解決我們在微服務(wù)架構(gòu)中遇到的問題俘侠。

    • 服務(wù)治理:eureka
    • 分布式配置:config
    • 客戶端調(diào)用工具:rest/feign客戶 rpc遠(yuǎn)程調(diào)用
  • 說明:阿里巴巴兼贡、騰訊娃胆、百度

  • 注意:大家如果去一些比較大型的互聯(lián)網(wǎng)公司中,整個公司內(nèi)部實(shí)現(xiàn)rpc通訊的框架禁谦、服務(wù)幫助治理都是內(nèi)部自己研發(fā)。

  • rpc遠(yuǎn)程調(diào)用框架:HTTPclent丧蘸、dubbo、feign演训、grpc弟孟、基于netty手寫rpc

spring cloud一代和二代的區(qū)別

  • spring cloud第一代實(shí)際上采用Netflix開源的組件整合微服務(wù)解決方案。
  • spring cloud第二代實(shí)際上就是自己研發(fā)和國內(nèi)的優(yōu)秀的服務(wù)解決微服務(wù)框架進(jìn)行組合样悟。比如spring cloudali baba
    • spring cloud Alibaba實(shí)際上是為了推廣阿里云的產(chǎn)品對我們目前的spring cloud2.x版本實(shí)現(xiàn)擴(kuò)展功能拂募。

nacos實(shí)現(xiàn)服務(wù)注冊于發(fā)現(xiàn)

spring cloud與spring cloud Alibaba的區(qū)別

  • spring cloud Alibaba實(shí)際上是為了推廣阿里云的產(chǎn)品對我們目前的spring cloud2.x版本和spring cloud1.x版本實(shí)現(xiàn)組件擴(kuò)展功能庭猩,能夠完美整合到spring cloud開發(fā)的組件。
    • nacos分布式注冊中心陈症、分布式配置中心spring cloudEureka+config組合蔼水。
    • 如果使用spring cloud Alibaba 建議使用Alibaba整個體系的產(chǎn)品。

微服務(wù)服務(wù)治理核心概念

  • Nacos產(chǎn)生背景
    • nacos分布式注冊與發(fā)現(xiàn)功能 | 分布式配置中心
    • 產(chǎn)生于rpc遠(yuǎn)程調(diào)用中爬凑,服務(wù)的url的治理
      • rpc遠(yuǎn)程調(diào)用框架:HTTP client徙缴、grpc、dubbo嘁信、rest于样、openfeign等。
      • 傳統(tǒng)rpc遠(yuǎn)程調(diào)用中存在哪些問題?
        • 超時贬芥、安全、服務(wù)與服務(wù)之間的url地址管理
        • 在我們的微服務(wù)架構(gòu)通訊中,服務(wù)間依賴非常大,如果使用傳統(tǒng)方式管理我們的服務(wù),非常麻煩雾袱,所以采用url治理技術(shù)妻枕,可以實(shí)現(xiàn)我們整個實(shí)現(xiàn)動態(tài)服務(wù)注冊與發(fā)現(xiàn)蝌数、本地負(fù)載均衡剑梳、容錯等

傳統(tǒng)服務(wù)注冊中心的實(shí)現(xiàn)方式

  • 把每個服務(wù)器的地址信息和端口號人工存放到數(shù)據(jù)庫表中
    Id service IP 端口號
    1 itycu.cn 192.168.1.1 8080
    2 itycu.cn 192.168.1.1 8000
    • 基于數(shù)據(jù)庫形式實(shí)現(xiàn)服務(wù)url治理的缺點(diǎn)
      • 維護(hù)成本高
      • 沒有實(shí)現(xiàn)動態(tài)自動化

分布式注冊中心實(shí)現(xiàn)原理

  • 注冊中心的作用

    • 管理整個微服務(wù)url地址
    • 可以實(shí)現(xiàn)動態(tài)感知
  • 注冊中心:duboo依賴zookeeper、eureka骂倘、consul情妖、nacos、redis、數(shù)據(jù)庫

  • nacos與eureka的區(qū)別

  • eureka與zookeeper的區(qū)別

  • 注冊中心的原理

    • 服務(wù)注冊:提供服務(wù)接口地址信息存放
    key IP 端口號
    服務(wù)名稱 192.168.1.1 8080

    生產(chǎn)者啟動時,根據(jù)這種存儲方式注冊到微服務(wù)注冊中心

    • 生產(chǎn)者:提供我們接口被其他服務(wù)調(diào)用
    • 消費(fèi)者:調(diào)用接口實(shí)現(xiàn)服務(wù)

    根據(jù)以上存儲方式的服務(wù)名稱獲取到IP地址和端口號
    獲取到地址后在本地實(shí)現(xiàn)rpc遠(yuǎn)程調(diào)用

Naxos基本介紹

  • 實(shí)現(xiàn)注冊中心和分布式配置中心
  • 默認(rèn)賬號密碼:nacos

使用命令模式實(shí)現(xiàn)對nacos的注冊

使用discovertyClient從注冊中心獲取接口地址

使用rest Template實(shí)現(xiàn)rpc遠(yuǎn)程調(diào)用

純手寫本地負(fù)載均衡輪詢算法

實(shí)現(xiàn)線下服務(wù)動態(tài)感知

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓤摧,一起剝皮案震驚了整個濱河市这揣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖膳汪,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件征字,死亡現(xiàn)場離奇詭異,居然都是意外死亡浦楣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門灵份,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莺葫,“玉大人贸铜,你說我怎么就攤上這事∨谝叮” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵畔濒,是天一觀的道長绽左。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么白群? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮法牲,結(jié)果婚禮上艰猬,老公的妹妹穿的比我還像新娘。我一直安慰自己道宅,他們只是感情好肃弟,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布笤受。 她就那樣靜靜地躺著汗贫,像睡著了一般咐蝇。 火紅的嫁衣襯著肌膚如雪许师。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天舅逸,我揣著相機(jī)與錄音,去河邊找鬼皇筛。 笑死琉历,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的水醋。 我是一名探鬼主播旗笔,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拄踪!你這毒婦竟也來了蝇恶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤惶桐,失蹤者是張志新(化名)和其女友劉穎撮弧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姚糊,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡想虎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了叛拷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舌厨。...
    茶點(diǎn)故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖忿薇,靈堂內(nèi)的尸體忽然破棺而出裙椭,到底是詐尸還是另有隱情,我是刑警寧澤署浩,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布揉燃,位于F島的核電站,受9級特大地震影響筋栋,放射性物質(zhì)發(fā)生泄漏炊汤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抢腐。 院中可真熱鬧姑曙,春花似錦、人聲如沸迈倍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啼染。三九已至宴合,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間迹鹅,已是汗流浹背卦洽。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留斜棚,地道東北人阀蒂。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像打肝,于是被迫代替她去往敵國和親脂新。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評論 2 361