NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

剛剛突然想到以前做的一套微服務系統,如果讓我重新接手,如果把每個微服務都做成介面類似第三方jar的形式,如果想要使用,在一個統一的位置,直接構建個物件呼叫不是更簡單。

緊接著聯想到,如果把這些微服務能夠被呼叫的資訊都註冊到一個註冊中心(事實上也是這麼做的)
,然後其他的專案只要用到了其他子專案,直接在註冊中心申請呼叫就OK。這個時候如果能夠提供一個統一的呼叫模版就更好了,自己最熟悉的RestTemplate就是這個東西。把要呼叫的專案的url之類的所需資訊填寫完整之後就可以用這個Template去呼叫介面,進行資訊互動。

這個統一的註冊中心,系統之間相互通訊的方式,就是分散式專案能夠存在的根本原因,而分散式架構又是微服務實現的基礎。所謂的微服務就是一個完整的專案按照功能和業務拆分成若干個子專案,這些子專案都可以被稱之為微服務。

有些地方說分散式和微服務的區別:分散式一般都是部署在不同伺服器的不同專案或者同一專案,而微服務可以都部署在一臺伺服器上,也可以隨意組合的部署在多臺伺服器上。

這種說法的觀點在於伺服器的形式上,同一臺伺服器和多臺伺服器。但是,部署在同一臺伺服器上的專案,按照host:port這種確定某個專案唯一的方式來看,他們每個又都是獨立存在的,事實上也是如此。所以,你即使不把他們稱之為分散式,但這也是一種“偽分散式”。

所以說,微服務本質上還是一種分散式。

插個公有云和私有云的話題。剛開始聽說公有云和私有云的時候,真的感覺很迷茫,之前在做的是公有云,近期要開始做私有云了。可是什麼是公有云?什麼是私有云?經過公司大牛的一番介紹之後得到以下結論。

公有云:對公的,公開對外開放的,他存在的價值就是作為一個面向大眾的,能夠滿足一般公共需求的一套服務。因為它的開放性,所以原則上來說每個人都能夠通過一些固定的途徑訪問它,而且所有使用者都是使用的同一套雲服務。

私有云:對內的,非公開的。它是為了某些特殊客戶開發的,可能包含客戶某些獨特的需求,一般都是部署在某些區域網,針對某一客戶開放使用的。其他人無法訪問,或者說有可能根本感知不到它的存在。

公有云與私有云的區別:公有云部署在因特網上,原則上可以被所有人使用。私有云是針對某些客戶開發,部署在其區域網中,只能由該使用者或者該使用者所允許的人使用。

其實我的個人另一層的理解是,所謂的公私都是相對的。他們本質上都是一個伺服器體系,一個部署在世上最大的區域網——因特網上,一個部署在小一些的區域網上。他們的區別跟區域網掛上了關係,所以他們的區別可以間接的理解為因特網和某一小型區域網的區別。再說白了就是一個大一個小。打個比方,買手機的時候一般人都是買的大眾版,而有些人用的是自己獨有的定製版。

現在回到微服務和分散式上來。

在我的理解中微服務就是一種被特殊化的微服務,分散式是微服務的根本。現在找工作的時候如果你說不懂沒聽過分散式,都被認為很low。感覺上來說微服務是個新興的概念(儘管它很早之前就被提出來了)。

最開始的時候說了,實現微服務需要一個註冊中心。而我們平時都是把他們註冊到同一個區域網中,使得他們能夠被彼此訪問到,能夠實現互動。

而我們使用的因特網中,自己能夠輕易的訪問它裡面的任何一個專案(原則上應該是這樣的),所以我現在把它理解為,這些專案或者說服務,都被註冊到了因特網這個註冊中心來,所以我能夠訪問到這些專案,享受這些專案帶來的服務。

所以,我在這裡很不負責任的得出來一個結論:因特網上的每個網站(專案)都是被他們的所有者部署後註冊到這個世界上最大的區域網中的,所以他們在這個區域網中是分散式儲存的。現在他們共同給我們提供了我們日常所需的服務,他們對我們而已其實是共同組成了一個龐大的網路專案。所以,他們每個都承載了這個專案中的某些功能,相對於整個龐大的專案來說,他們就是一個個子服務,也就是我們所說的微服務。

最後再說一句,所謂的微服務的微字其實都是相對的,每個人都應該有自己的理解。

相關文章

程式語言 最新文章