當(dāng)我們談微服務(wù),我們?cè)谡勈裁矗?)— 了解微服務(wù)

微服務(wù)是什么

拋去教條性質(zhì)的解釋?zhuān)瑥木奘瘧?yīng)用到微服務(wù)應(yīng)用,耦合度是其中最大的變化?;蚴菍⒍鄠€(gè)模塊中重復(fù)的部分進(jìn)行拆分,或是純粹為了拆分膨脹的單體應(yīng)用,這些拆分出來(lái)的部分獨(dú)立成一個(gè)服務(wù)單獨(dú)部署與維護(hù),便是微服務(wù)了。

拆分后自然而然會(huì)催生出一些必要的需求:

  1. 從本地方法調(diào)用的關(guān)系衍變成遠(yuǎn)程過(guò)程調(diào)用的關(guān)系,那么可靠的通信功能是首要的。
  2. 隨著拆分工作的推進(jìn),資源調(diào)度關(guān)系會(huì)變得錯(cuò)綜復(fù)雜,這時(shí)候需要完善的服務(wù)治理。
  3. 調(diào)用關(guān)系網(wǎng)的整體復(fù)雜化還會(huì)給我們帶來(lái)更大的風(fēng)險(xiǎn),即鏈?zhǔn)椒磻?yīng)導(dǎo)致服務(wù)雪崩的可能性,所以如何保障服務(wù)穩(wěn)定性也是微服務(wù)架構(gòu)中需要考慮的。
  4. 這點(diǎn)就不是內(nèi)需而算是自我演進(jìn)了,服務(wù)化后,如果能結(jié)合容器化、Devops技術(shù)實(shí)現(xiàn)服務(wù)運(yùn)維一體化,將大大降低微服務(wù)維護(hù)的成本,不管是現(xiàn)在還是將來(lái)。

微服務(wù)是什么樣的

從目前常見(jiàn)網(wǎng)站架構(gòu)的宏觀角度看,微服務(wù)處在中間的層次。紅框圈出的部分都屬于微服務(wù)的范疇。包括最基礎(chǔ)的rpc框架、注冊(cè)中心、配置中心,以及更廣義角度的監(jiān)控追蹤、治理中心、調(diào)度中心等。

image.png

從微服務(wù)自身角度來(lái)看,則大致會(huì)包含以下這些模塊:

  • 服務(wù)注冊(cè)與發(fā)現(xiàn)
  • rpc遠(yuǎn)程調(diào)用
  • 路由與負(fù)載均衡
  • 服務(wù)監(jiān)控
  • 服務(wù)治理
image.png

服務(wù)化的前提

是不是只要套上微服務(wù)框架就算是一個(gè)微服務(wù)了呢?雖然這樣有了微服務(wù)的表,但卻沒(méi)有微服務(wù)的實(shí)質(zhì),即”微“。微服務(wù)化的前提是服務(wù)拆分到足夠”微“,足夠單一職責(zé),當(dāng)然拆分程度與服務(wù)邊界都需要結(jié)合業(yè)務(wù)自行把握。

廣義的服務(wù)拆分即包含了應(yīng)用拆分,也包含了數(shù)據(jù)拆分。

應(yīng)用拆分后需要引入微服務(wù)框架來(lái)進(jìn)行服務(wù)通信與服務(wù)治理,這也就是傳統(tǒng)定義上的微服務(wù)。

數(shù)據(jù)拆分后同樣需要引入一系列手段來(lái)進(jìn)行保障,由于不是與微服務(wù)強(qiáng)相關(guān)的話題,在此只做簡(jiǎn)單闡述:

  • 分布式id
  • 新表優(yōu)化
  • 數(shù)據(jù)遷移與數(shù)據(jù)同步
  • sql調(diào)用方案改造
  • 切庫(kù)方案
  • 數(shù)據(jù)一致性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容