微服務架構必須要懂的概念

2021-10-11 18:34:50 字數 1386 閱讀 6964

微服務架構必須要懂的概念

最近專案需要把自己負責的專案逐步改造成微服務,對專案逐步改造,慢慢的有個很有趣的想法,專案就是乙個公司。

小王最近打算開始創業了,初期業務比較少,就招了小李乙個業務員來處理業務。(李就是單體服務)這樣小李有事請假了,就沒有人來處理業務了。這樣不行啊嚴重影響公司的業務的開展,小王又招了業務員小趙來處理相同業務,小李和小趙只要有乙個人在就可以處理公司業務(小趙和小李就是雙活,也叫集群)。

小趙和小李都是業務員,不能只等小李有事了,小趙才處理,肯定是要把平時的業務分成兩份然後分別交給小李小趙處理,誰來分呢?小王又招了乙個管理小郭,小郭拿到業務以後分別分給小趙和小李(小郭就是負載均衡器,把任務分別分給小趙和小李就是負載均衡)。

有一段時間小李家裡有點事情,導致處理業務有點慢了,小郭趕緊把業務少分配一點給小李多分配一點給小趙,有一天小李有事沒來還忘了向小郭請假,小郭給小李分配業務沒有響應,小郭不再向小李分配任務。(這就是熔斷限流)

然後隨著公司的發展,公司為了更好的為客戶服務,不斷的新增新功能,公司的服務功能越來越多,小趙和小李負責的業務越來越錯綜複雜,有點不堪重任了。這時候小王一看這樣下去不行啊,只有再招了幾個人,然後把小趙和小李負責業務拆分開分給新來的幾個人。(這就是分布式部署)。

公司不斷的發展,又開展了不同了業務,成立了新部門b,之前的小郭所在部門為部門a。

部門b有的業務需要部門a資料支援,部門a有時候需要部門b資料支援。雙方約定把各自資料放在乙個地方,需要就取就行了,但是突然有一天這個地方損壞了,a部門把資料轉移到另乙個地方,b部門需要換乙個位址拿資料了,如果只有乙個資料這不是很麻煩,但是其實a部門有好多不同的資料,小王想了想,那就維護一張**,**上儲存資料名稱和它的位址,誰需要資料到上面搜尋一下名稱獲得位址再去拿就行了。(這張**就是服務註冊中心,當然服務註冊中心的功能比這裡多了很多,比如消費列表、服務存活檢測等,但是它核心功能就是維護一張服務和位址orm表)。

各業務員在進行業務的開展的時候有些指標改動比較頻繁,一般都是把相關的業務人員拉到乙個群裡面並在該群裡面建一張指標和使用者關係表,並要求如果有改動就要通知到使用到這些指標的業務人員(這個群就是動態配置中心)。

隨著業務的開展發現出現客戶想要的服務需要部門a和部門b兩個部門來做,每次都需要部門a和部門b兩個部門進行開會討論協調大大的降低了業務推進進度,小王想這樣不行啊,好吧那就成立乙個新的部門c專門負責對接客戶,然後根據客戶的需求和自己的部門規則來服務拆分分配給部門a和部門b。(這裡部門c就起到乙個閘道器的作用,不過閘道器功能還有很多,比如權重等)。

隨著公司業務的不斷的發展,b部門向小王反映在拿去a部門資料的時候總是出現要等好久,a部門當然不承認了。小王想了想又把b部門和a部門相關人員拉進乙個群裡面,然後規定說呼叫別的部門資料的時候再群裡說一下,被呼叫部門把資料給他們的時候也在群裡說一下。(這個裡面就可以根據呼叫和被呼叫方傳送的資訊知道被呼叫方響應時間了和被呼叫的情況,這就是鏈路追蹤。)

微服務架構概念

微服務架構的系統是乙個分布式的系統,微服務是一種架構風格,乙個大型複雜軟體應用由乙個或多個微服務組,每個微服務執行在自己的程序中,並使用輕量級的機制通訊。系統中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注於完成一件任務,每個微服務代表著乙個小的業務能力。這些服務可以使用不同的...

面試必須要懂的函式

define stl ifdef stl include include using namespace std char strcpy char dest,const char src char strncpy char dest,const char src,int count int strc...

站長必須要懂的銷售技巧(一)

銷售是創造 溝通與傳送價值給顧客,及經營顧客關係以便讓組織與其利益關係人受益的一種組織功能與程式。銷售就是介紹商品提供的利益,以滿足客戶特定需求的過程。商品當然包括著有形的商品及其附帶的無形的服務,滿足客戶特定的需求是指客戶特定的慾望被滿足,或者客戶特定的問題被解決。程式設計客棧能夠滿足客戶這種特定...