日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、微服務架構的由來

在微服務架構出現之前,最常用的架構就是單體架構,俗稱"一個jar(war)包打天下"。在一個jar包工程中,采用MVC架構,分為表現層,業務層,數據訪問層,所有的業務模塊,都放在這個工程中集成,如下圖所示:


 

隨著軟件行業規模的增長,這種單體架構的弊端也越來越多,包括:

 

  1. 耦合性高,某個地方出問題,很可能影響其他業務模塊的使用
  2. 代碼管理成本高,項目沉重,并會隨著需求的增加越來越重
  3. 隨著訪問量的增多,這種架構的工程并發力不夠

 

為了解決單體結構帶來的問題,就出現了微服務架構。

微服務架構就是將單一程序拆分成一個一個的微服務,每個微服務運行在自己的進程中,并使用輕量級的機制通信,通常是HTTP RESTFUL

API。這些服務圍繞業務能力來劃分,并通過自動化部署機制來獨立部署。這些服務可以使用不同的編程語言,不同數據庫,以保證最低限度的集中式管理。

二、微服務架構優勢與劣勢

優勢:

復雜的業務拆分成多個業務,每個業務是一個獨立的微服務,徹底地去耦合,利于分工,當需要增加業務的時候,可以方便創建新的微服務擴展業務,而不用擔心有沒有別的地方耦合

每個微服務都是獨立部署的,如果其中一個宕機了,不會影響整個系統;也方便功能變更時,服務的部署;當流量增大后,可以將服務集群化部署,增強抗擊高并發的能力

每個微服務之間可以使用不同的編程語言和不同的數據庫

劣勢:

在復雜程度上來說,微服務比單體建構要更為復雜些

部署比單體項目復雜

服務之間是用HTTP協議通信的,通信成本比單體項目高

數據一致性問題。

三、適用場景

通過上面的描述可以看出,微服務在解決了單體架構帶來的問題的同時,也出現了部署復雜,需要增加中間件聯絡各服務的問題。所以,不是所有的場景都推薦使用微服務架構,具體如下:

適用場景:

①:大型復雜的項目…(來自單體架構200W行代碼的恐懼)

②:快速迭代的項目…(來自一天一版的恐懼)

③:并發高的項目…(考慮彈性伸縮擴容的恐懼)

不適場景:

①:業務穩定,就是修修bug ,改改數據

②:迭代周期長 發版頻率 一二個月一次.

四、微服務與SpringCloud的關系

SpringCloud簡單來說是上述微服務架構技術落地實現的集合體,是微服務架構下的一站式解決方案。

SpringCloud是一個技術的集合體,將上述的微服務架構進行落地。下面看一下這個集合體里包含哪些組件:

注冊中心Eureka:

拆分成多個服務之后,總得有個管理多個服務的模塊吧,這就是注冊中心的作用。起到服務注冊和服務發現的作用。

網關Zuul:

拆分成多個服務之后,涉及到服務之間的調用吧,一個服務調用了三個服務的模塊,那在這個服務里,配置三個調用地址,看起來是不是很麻煩呀,所以就出現了網關,所有的服務調用都調用到網關,然后在網關里配置路由,進行服務的轉發,類似于代理的作用。當然網關需要配合注冊中心進行使用,去發現轉發到哪個服務上去。

負載均衡Ribbon:

網關找到請求發送到哪個服務后,如果這個服務做了集群,有多個實例,那該發送到哪個實例上呢,于是就出現了Ribbon組件,進行負載均衡。

遠程調用方式Feign:

服務之間相互調用的時候,可以使用RestTemplate進行調用,SpringCloud也提供了Feign客戶端訪問,即提供了一種遠程調用方式。

斷路器Hystrix:

SpringCloud提供了一個監控組件,用于監控服務接口的狀態和斷路情況。Hystrix Dashboard是個監控面板,提供了可視化界面查看服務調用的耗時等等。

上述就是微服務的五大組件。微服務架構就是對服務進行拆分,多個小的項目,組成一個大型項目。那么,拆分后的服務,肯定需要增加中間件,來統一維護這些服務,于是就有了注冊中心。拆分成小型服務后,涉及到服務之間接口的調用,于是產生了Feign技術。為了實現高可用,每個小型服務都需要集群,那么集群如何選舉呢?就出現了負載均衡技術Ribbon。最后通過網關統一管理請求路徑的配置,進行請求的轉發。SpringCloud還為我們提供了斷路器,用于監控服務的各種指標信息。

所以,SpringCloud是一套微服務架構的落地技術方案,對于程序員而言,只要在這套技術框架里面,進行業務模塊的開發實現即可。

同時可以發現,我們要使用SpringCloud,還需要維護注冊中心,網關等等技術,這也是使用微服務架構需要花費的成本。

官網: https://spring.io/projects/spring-cloud

中文文檔: https://www.springcloud.cc/

Spring Cloud中國社區:http://springcloud.cn/

SpringCloud微服務架構圖


 

五、SpringCloud與SpringCloud Alibaba的關系

SpringCloud Alibaba是阿里研發的一套微服務架構的落地技術方案,可以很好的兼容SpringCloud,只需修改一些配置和注解,原生SpringCloud就可以接入到SpringCloud Alibaba中。

SpringCloud Alibaba提供了一些新組件,來落地微服務架構,阿里之所以要開發這套技術架構,主要是為了推廣相關的產品,當然有付費產品。

下面看SpringCloud與Alibaba組件對比:


 


 

SpringCloud Alibaba技術架構:

分享到:
標簽:架構
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定