0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

我所理解的SOA和微服務(wù)

lhl545545 ? 來(lái)源:電子發(fā)燒友網(wǎng) ? 2018-02-07 14:19 ? 次閱讀

SOA和微服務(wù)到底是什么關(guān)系?

說(shuō)實(shí)話,我確實(shí)不明白SOA和微服務(wù)到底有什么本質(zhì)上的區(qū)別,兩者說(shuō)到底都是對(duì)外提供接口的一種架構(gòu)設(shè)計(jì)方式。我倒覺(jué)得微服務(wù)其實(shí)就是隨著互聯(lián)網(wǎng)的發(fā)展,復(fù)雜的平臺(tái)、業(yè)務(wù)的出現(xiàn),導(dǎo)致SOA架構(gòu)向更細(xì)粒度、更通過(guò)化程度發(fā)展,就成了所謂的微服務(wù)了。以這種說(shuō)法做為根據(jù),我覺(jué)得SOA與微服務(wù)的區(qū)別在于如下幾個(gè)方面:

微服務(wù)相比于SOA更加精細(xì),微服務(wù)更多的以獨(dú)立的進(jìn)程的方式存在,互相之間并無(wú)影響;

微服務(wù)提供的接口方式更加通用化,例如HTTP RESTful方式,各種終端都可以調(diào)用,無(wú)關(guān)語(yǔ)言、平臺(tái)限制;

微服務(wù)更傾向于分布式去中心化的部署方式,在互聯(lián)網(wǎng)業(yè)務(wù)場(chǎng)景下更適合;

為什么要使用微服務(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ā)展、平臺(tái)的壯大密不可分,下面借用dubbo的網(wǎng)站架構(gòu)發(fā)展圖和說(shuō)明:

我所理解的SOA和微服務(wù)

單一應(yīng)用架構(gòu)

當(dāng)網(wǎng)站流量很小時(shí),只需一個(gè)應(yīng)用,將所有功能都部署在一起,以減少部署節(jié)點(diǎn)和成本。

此時(shí),用于簡(jiǎn)化增刪改查工作量的 數(shù)據(jù)訪問(wèn)框架(ORM) 是關(guān)鍵。

垂直應(yīng)用架構(gòu)

當(dāng)訪問(wèn)量逐漸增大,單一應(yīng)用增加機(jī)器帶來(lái)的加速度越來(lái)越小,將應(yīng)用拆成互不相干的幾個(gè)應(yīng)用,以提升效率。

此時(shí),用于加速前端頁(yè)面開(kāi)發(fā)的 Web框架(MVC) 是關(guān)鍵。

分布式服務(wù)架構(gòu)

當(dāng)垂直應(yīng)用越來(lái)越多,應(yīng)用之間交互不可避免,將核心業(yè)務(wù)抽取出來(lái),作為獨(dú)立的服務(wù),逐漸形成穩(wěn)定的服務(wù)中心,使前端應(yīng)用能更快速的響應(yīng)多變的市場(chǎng)需求。

此時(shí),用于提高業(yè)務(wù)復(fù)用及整合的 分布式服務(wù)框架(RPC) 是關(guān)鍵。

流動(dòng)計(jì)算架構(gòu)

當(dāng)服務(wù)越來(lái)越多,容量的評(píng)估,小服務(wù)資源的浪費(fèi)等問(wèn)題逐漸顯現(xiàn),此時(shí)需增加一個(gè)調(diào)度中心基于訪問(wèn)壓力實(shí)時(shí)管理集群容量,提高集群利用率。

此時(shí),用于提高機(jī)器利用率的 資源調(diào)度和治理中心(SOA) 是關(guān)鍵。

平臺(tái)隨著業(yè)務(wù)的發(fā)展從 All in One 環(huán)境就可以滿(mǎn)足業(yè)務(wù)需求(以Java來(lái)說(shuō),可能只是一兩個(gè)war包就解決了);發(fā)展到需要拆分多個(gè)應(yīng)用,并且采用MVC的方式分離前后端,加快開(kāi)發(fā)效率;在發(fā)展到服務(wù)越來(lái)越多,不得不將一些核心或共用的服務(wù)拆分出來(lái),其實(shí)發(fā)展到此階段,如果服務(wù)拆分的足夠精細(xì),并且獨(dú)立運(yùn)行,我覺(jué)得就可以將之理解為一個(gè)微服務(wù)了。

理想中的微服務(wù)架構(gòu)

沒(méi)有什么東西是完美的,網(wǎng)站架構(gòu)也是這樣的,只有「比之前好一點(diǎn)」的架構(gòu)或「目前最好的實(shí)現(xiàn)方式」,不存在理想中的架構(gòu),那么理想中微服務(wù)架構(gòu)應(yīng)該是怎么樣的呢,我覺(jué)得至少應(yīng)該有如下幾個(gè)特點(diǎn):

能支持當(dāng)前業(yè)務(wù)需求,當(dāng)然這只是最最基本的條件;

每個(gè)微服務(wù)都要去中心化,不存在單點(diǎn)故障;

每個(gè)微服務(wù)都要實(shí)現(xiàn)高可用、高負(fù)載,不會(huì)因?yàn)橐粋€(gè)服務(wù)不可用而影響了整套業(yè)務(wù)流;

每個(gè)微服務(wù)都要高度通用化,即多種終端都可調(diào)用,不分語(yǔ)言和平臺(tái);

服務(wù)部署或升級(jí)簡(jiǎn)單,不會(huì)消耗大量人力并且部署過(guò)程不易出現(xiàn)人為錯(cuò)誤;

微服務(wù)具有快速注冊(cè)與自動(dòng)發(fā)現(xiàn)功能(例如dubbo框架)

我所理解的SOA和微服務(wù)

當(dāng)然,這只是其中能想到的幾點(diǎn),實(shí)際環(huán)境中用到的微服務(wù)框架有可能會(huì)根據(jù)實(shí)際業(yè)務(wù)需求優(yōu)化出更加個(gè)性化的功能,也可能有些功能是不需要的。還是那句話,架構(gòu)是服務(wù)于業(yè)務(wù)的,能快速方便的滿(mǎn)足業(yè)務(wù)需求的架構(gòu)才是好的架構(gòu),才是好的微服務(wù)架構(gòu)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SOA
    SOA
    +關(guān)注

    關(guān)注

    1

    文章

    282

    瀏覽量

    27404
  • 微服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    131

    瀏覽量

    7322
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    微服務(wù)架構(gòu)與容器云的關(guān)系與區(qū)別

    微服務(wù)架構(gòu)與容器云密切相關(guān)又有所區(qū)別。微服務(wù)將大型應(yīng)用拆分為小型、獨(dú)立的服務(wù),而容器云基于容器技術(shù),為微服務(wù)提供構(gòu)建、發(fā)布和運(yùn)行的平臺(tái)。區(qū)別在于,
    的頭像 發(fā)表于 10-21 17:28 ?148次閱讀

    入門(mén)級(jí)攻略:如何容器化部署微服務(wù)?

    第一步理解容器化基礎(chǔ),第二步創(chuàng)建Dockerfile,第三步構(gòu)建推送鏡像,第四步部署微服務(wù),第五步管理微服務(wù)、第六步優(yōu)化更新。容器化部署微服務(wù)是現(xiàn)代軟件開(kāi)發(fā)中的一種高效方法,可提供良好
    的頭像 發(fā)表于 10-09 10:08 ?100次閱讀

    理解在高輸出電流和溫度下工作的SOA曲線

    電子發(fā)燒友網(wǎng)站提供《理解在高輸出電流和溫度下工作的SOA曲線.pdf》資料免費(fèi)下載
    發(fā)表于 08-26 14:23 ?0次下載
    <b class='flag-5'>理解</b>在高輸出電流和溫度下工作的<b class='flag-5'>SOA</b>曲線

    NVIDIA NIM微服務(wù)帶來(lái)巨大優(yōu)勢(shì)

    服務(wù)通過(guò)熱門(mén) AI 模型為數(shù)百萬(wàn)開(kāi)發(fā)者帶來(lái)高達(dá) 5 倍的 token 效率提升,使他們能夠立即訪問(wèn)在 NVIDIA DGX Cloud 上運(yùn)行的 NIM 微服務(wù)。
    的頭像 發(fā)表于 08-23 15:20 ?428次閱讀

    采用OpenUSD和NVIDIA NIM微服務(wù)創(chuàng)建精準(zhǔn)品牌視覺(jué)

    全球領(lǐng)先的創(chuàng)意和制作服務(wù)機(jī)構(gòu)率先采用 OpenUSD 和 NVIDIA NIM 微服務(wù)來(lái)創(chuàng)建精準(zhǔn)的品牌視覺(jué)。
    的頭像 發(fā)表于 08-01 14:33 ?377次閱讀

    全新 NVIDIA NeMo Retriever微服務(wù)大幅提升LLM的準(zhǔn)確性和吞吐量

    企業(yè)能夠通過(guò)提供檢索增強(qiáng)生成功能的生產(chǎn)就緒型 NVIDIA NIM 推理微服務(wù),充分挖掘業(yè)務(wù)數(shù)據(jù)的價(jià)值。這些微服務(wù)現(xiàn)已集成到 Cohesity、DataStax、NetApp 和 Snowflake 平臺(tái)中。
    的頭像 發(fā)表于 07-26 11:13 ?768次閱讀
    全新 NVIDIA NeMo Retriever<b class='flag-5'>微服務(wù)</b>大幅提升LLM的準(zhǔn)確性和吞吐量

    【算能RADXA微服務(wù)器試用體驗(yàn)】Radxa Fogwise 1684X Mini 規(guī)格

    通過(guò)網(wǎng)絡(luò)可以了解到,算能RADXA微服務(wù)器的具體規(guī)格: 處理器:BM1684X 算力:高達(dá)32Tops INT8峰值算力 內(nèi)存:16GB LPDDR4X 內(nèi)存 存儲(chǔ):64GB eMMC 編程框架
    發(fā)表于 02-28 11:21

    如何理解IGBT的四種SOA?

    如何理解IGBT的四種SOA? IGBT的四種SOA表示了IGBT器件在不同工作狀態(tài)下的安全操作區(qū)域。這四種SOA是:Continuous SOA
    的頭像 發(fā)表于 02-18 11:04 ?942次閱讀

    Java微服務(wù)隨機(jī)掉線排查過(guò)程簡(jiǎn)析

    我們的業(yè)務(wù)共使用 11 臺(tái)(阿里云)服務(wù)器,使用 SpringcloudAlibaba 構(gòu)建微服務(wù)集群, 共計(jì) 60 個(gè)微服務(wù), 全部注冊(cè)在同一個(gè) Nacos 集群。
    的頭像 發(fā)表于 01-13 17:41 ?889次閱讀
    Java<b class='flag-5'>微服務(wù)</b>隨機(jī)掉線排查過(guò)程簡(jiǎn)析

    游戲公司不使用微服務(wù)架構(gòu)的原因

    微服務(wù)基本只有 request/response 的模式。做不了 streaming?微服務(wù)通常要求應(yīng)用是無(wú)狀態(tài)的才能做到水平擴(kuò)展。streaming 本身就是加入了狀態(tài)
    的頭像 發(fā)表于 12-29 11:18 ?400次閱讀

    如何搭建微服務(wù)架構(gòu)的全局圖景

    如果一直保持共用數(shù)據(jù)庫(kù)的模式,則整個(gè)架構(gòu)會(huì)越來(lái)越僵化,失去了微服務(wù)架構(gòu)的意義。因此小明和小紅一鼓作氣,把數(shù)據(jù)庫(kù)也拆分了。所有持久化層相互隔離,由各個(gè)服務(wù)自己負(fù)責(zé)。另外,為了提高系統(tǒng)的實(shí)時(shí)性,加入了消息隊(duì)列機(jī)制。
    的頭像 發(fā)表于 12-27 15:16 ?456次閱讀
    如何搭建<b class='flag-5'>微服務(wù)</b>架構(gòu)的全局圖景

    如何構(gòu)建彈性、高可用的微服務(wù)?

    基于微服務(wù)的應(yīng)用程序可實(shí)現(xiàn)戰(zhàn)略性數(shù)字轉(zhuǎn)型和云遷移計(jì)劃,對(duì)于開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),這種架構(gòu)十分重要。那么,如何來(lái)構(gòu)建彈性、高可用的微服務(wù)呢?RedisEnterprise給出了一個(gè)完美的方案。文況速覽
    的頭像 發(fā)表于 11-26 08:06 ?440次閱讀
    如何構(gòu)建彈性、高可用的<b class='flag-5'>微服務(wù)</b>?

    設(shè)計(jì)微服務(wù)架構(gòu)的原則

    微服務(wù)是一種軟件架構(gòu)策略,有利于改善整體性能和可擴(kuò)展性。你可能會(huì)想,的團(tuán)隊(duì)需不需要采用微服務(wù),設(shè)計(jì)微服務(wù)架構(gòu)有哪些原則?本文會(huì)給你一些靈感。文章速覽:
    的頭像 發(fā)表于 11-26 08:05 ?538次閱讀
    設(shè)計(jì)<b class='flag-5'>微服務(wù)</b>架構(gòu)的原則

    docker微服務(wù)架構(gòu)實(shí)戰(zhàn)

    隨著云計(jì)算和容器化技術(shù)的快速發(fā)展,微服務(wù)架構(gòu)在軟件開(kāi)發(fā)領(lǐng)域中變得越來(lái)越流行。微服務(wù)架構(gòu)將一個(gè)大型的軟件應(yīng)用拆分成多個(gè)小型的、獨(dú)立部署的服務(wù),每個(gè)服務(wù)負(fù)責(zé)獨(dú)立的業(yè)務(wù)功能。其中,Docke
    的頭像 發(fā)表于 11-23 09:26 ?616次閱讀

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

    Spring Cloud是一個(gè)開(kāi)源的微服務(wù)架構(gòu)框架,它提供了一系列工具和組件,用于構(gòu)建和管理分布式系統(tǒng)中的微服務(wù)。它基于Spring框架,旨在通過(guò)簡(jiǎn)化開(kāi)發(fā)過(guò)程和降低系統(tǒng)復(fù)雜性來(lái)幫助開(kāi)發(fā)人員構(gòu)建彈性
    的頭像 發(fā)表于 11-23 09:24 ?1167次閱讀