什麼是單機,集羣,分佈式,微服務?

單機:所有的業務全部寫在一個項目中,部署服務到一臺服務器上。
作用:所有的請求業務都由這臺服務器處理

集羣:多臺服務器部署相同應用構成一個集羣
作用:通過負載均衡設備共同對外提供服務

  

分佈式:不同模塊部署在不同服務器上
作用:分佈式解決網站高併發帶來問題

SOA:業務系統分解爲多個組件,讓每個組件都獨立提供離散,自治,可複用的服務能力,通過服務的組合和編排來實現上層的業務流程
作用:簡化維護,降低整體風險,伸縮靈活

微服務:架構設計概念,各服務間隔離(分佈式也是隔離),自治(分佈式依賴整體組合)其它特性(單一職責,邊界,異步通信,獨立部署)是分佈式概念的跟嚴格執行SOA到微服務架構的演進過程
作用:各服務可獨立應用,組合服務也可系統應用

 舉個例子,假設需要開發一個在線商城。按照微服務的思想,我們需要按照功能模塊拆分成多個獨立的服務,如:用戶服務、產品服務、訂單服務、後臺管理服務、數據分析服務等等。

這一個個服務都是一個個獨立的項目,可以獨立運行。如果服務之間有依賴關係,那麼通過RPC方式調用。

 

  • 分佈式:一個業務分拆多個子業務,部署在不同的服務器上

  • 集羣:同一個業務,部署在多個服務器上

什麼是集羣

集羣技術特點:

  • 通過多臺計算機完成同一個工作,達到更高的效率。
  • 兩機或多機內容、工作過程等完全一樣。如果一臺死機,另一臺可以起作用。

在維基百科上說得也挺明白的了,我來舉個例子吧。

小周在公司寫Java程序,但公司業務在發展,一個Java開發者可能忙不過來,小周有的時候也得請個假呀。
於是請了3y過去一起做Java開發。平時小周和3y就寫Java程序,但3y可能有事要回學校一趟。
沒事,公司還有小周做Java開發呢,公司開發還能繼續運作。

3y跟小周都是做Java開發。
3y來了,小周的工作可以分擔一些。
3y請假了,還有小周在呢。

我寫了一個910便利網發佈到服務器去了,現在越來越多的人訪問了,訪問有點慢,怎麼辦???
很簡單,(只有充錢才能變強),加配置吧(加cpu,加內存)。升級完配置之後,訪問人數越來越多,
於是發現又不禁用啦,在這臺機器上加配置已經解決不了了,怎麼辦???很簡單,(只有充錢才能變強),
我再買一臺服務器,將910便利網也發佈到新買的這臺服務器上去。

特點: 這兩臺服務器都是運行同一個系統--->910便利網

好處:

  • 本來只有一臺機器處理訪問,現在有兩臺機器處理訪問了,分擔了壓力。
  • 如果其中一臺忘記繳費了,暫時用不了了。沒關係,還有另一臺可以用呢。

集羣:同一個業務,部署在多個服務器上(不同的服務器運行同樣的代碼,幹同一件事)

什麼是分佈式

以下內容來源維基百科:

分佈式系統是一組計算機,通過網絡相互連接傳遞消息與通信後並協調它們的行爲而形成的系統。組件之間彼此進行交互以實現一個共同的目標。

我也來舉個例子來說明一下吧:

現在公司有小周和3y一起做Java開發,做Java開發一般jQuery,AJAX都能寫一點,所以這些活都由我們來幹。
可是呢,3y對前端不是很熟,有的時候調試半天都調不出來。老闆認爲3y是真的菜!
於是讓小周專門來處理前端的事情。這樣3y就高興了,可以專心寫自己的Java,前端就專門交由小周負責了。
於是,小周和3y就變成了協作開發。

3y對前端不熟(能寫出來),但在調試的時候可能會花費很多時間
小周來專門做前端的事,3y可以專心寫自己的Java程序了。
都是爲了項目正常運行以及迭代。

我的910便利網已經部署到兩臺服務器去了,但是越來越多的人去訪問。現在也逐漸承受不住啦。
那現在怎麼辦啊??那繼續充錢變強??作爲一個理智的我,肯定得想想是哪裏有問題。
現在910便利網的模塊有好幾個,全都丟在同一個Tomcat裏邊。
其實有些模塊的訪問是很低的(比如後臺管理),那我可不可以這樣做:將每個模塊抽取獨立出來,
訪問量大的模塊用好的服務器裝着,沒啥人訪問的模塊用差的服務器裝着。
這樣的好處是:
一、資源合理利用了(沒人訪問的模塊用性能差的服務器,訪問量大的模塊單獨提升性能就好了)。
二、耦合度降低了:每個模塊獨立出來,各幹各的事(專業的人做專業的事),便於擴展

特點:

  • 將910便利網的功能拆分,模塊之間獨立,在使用的時候再將這些獨立的模塊組合起來就是一個系統了。

好處:

  • 模塊之間獨立,各做各的事,便於擴展,複用性高
  • 高吞吐量。某個任務需要一個機器運行10個小時,將該任務用10臺機器的分佈式跑(將這個任務拆分成10個小任務),可能2個小時就跑完了

分佈式:一個業務分拆多個子業務,部署在不同的服務器上(不同的服務器,運行不同的代碼,爲了同一個目的)

集羣/分佈式

其實我認爲分佈式/微服務/SOA這三個概念是差不多的,瞭解了其中的一個,然後將自己的理解往上面套就好了。沒必要細分每個的具體概念~~

鏈接:https://blog.csdn.net/heatdeath/article/details/79038795
鏈接:https://www.jianshu.com/p/d4fb16fafc2e

鏈接:https://www.cnblogs.com/mileres/p/9838618.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章