天天看點

第一章 springcloud幾大元件的介紹

不知道這個時候學習springcloud是否算太晚了。

        springcloud作為一種心的分布式架構被廣泛應用到企業開發中,特别是中小型企業,現在已經基本取代了dubbo。為了增強自己的競争力,不被這個時代淘汰,是以在慢慢學習springcloud,而且所在公司也在應用springcloud。

       springcloud作為一個分布式架構,将我們以前一個工程完成一個項目的方式做出了拆分,将項目按功能子產品劃分一個個小的項目,使得每個功能子產品都能獨立部署,獨立對外提供服務,使得項目功能單一化,結構更加清晰,而且友善多人同時開發。springcloud由一個個元件或者說大的子產品組成。這些子產品共同作用,才讓這個分布式架構的功能更加完美。springcloud所屬的元件有eureka,ribbon,feign,hystrix,getway,config,bus組成。

      1.eureka

        eureka分為用戶端和服務端,服務端的作用就是作為一個注冊中心來使用,就像是dubbo裡面的zookeeper,用來給服務提供者将資訊注冊到注冊平台上,服務消費者從注冊平台上擷取服務提供者的資訊,然後根據擷取到的資訊連接配接服務提供者。eureka的用戶端就是給服務提供者和服務消費者使用的,隻有當服務提供者和服務消費者是eureka的用戶端的時候,他們才能注冊到注冊中心以及從注冊中心擷取服務資訊。eureka服務端就像是淘寶平台,eureka用戶端就像是在淘寶上買賣東西的商家和客戶。為了保證服務的高可用性,eureka還擁有心跳機制,保護機制以及連帶責任機制。

      2.ribbon和feign

      ribbon和feign的作用是一樣的,服務消費者通過ribbon或者feign來調用服務提供者,也就是說服務消費者通過ribbon或者feign來像服務提供者發起請求擷取自己想要的資料或者希望服務提供者執行某個動作,更重要的是ribbon和feign在用戶端提供了負載均衡,使用者可以選擇相應的負載均衡算法來調用服務。ribbon和feign最大的不同是ribbon通過restTemplate來顯示的向服務提供者發送http請求,而feign是對restTemplate做了一層封裝,通過接口裡面的方法來調用,就像是調用自己本地的方法一樣來調用遠端接口。

     3.hystrix

      為了保證服務的健壯性,hystrix對服務消費者調用服務提供者進行了隔離保護,能實作服務熔斷和服務降級,這樣是避免在整個分布式架構中,由于某一個服務的調用不可用而消耗掉太多的資源導緻整個服務不可用的情況。hystrix提供了線程池隔離和信号量隔離機制,線程池隔離是将請求封裝成一個個的任務,然後由線程池去執行請求,當線程池滿了後,請求直接傳回錯誤結果。信号量的隔離就是請求要去拿到信号量後才能繼續執行。

    4.getway

    getway起到一個路由網關的作用,就像nginx一樣,讓服務消費者對外提供服務或者服務提供者給消費者提供服務統一一個url來進行調用,這樣不僅起到一個提供統一的對外url,友善其他服務調用,還能起到一個保護以及使用攔截器優先處理請求的作用。

   5.config和bus

   springcloud提供了一種對各個服務子產品的一種線上配置功能。其他服務可以通過config元件來擷取自己想要的配置資訊,這個配置資訊可以統一存儲,統一管理,配置資訊可以存儲到本地,也可以存儲到git上面,結合bus,當我們在git上更改配置資訊送出後,不需要重新開機服務,其他服務就能拿到最新的配置資訊。

以上簡單的介紹了springcloud的每個元件有什麼作用,可能有不太準和不太全的情況,但這都是我自己的了解,後面随着對springcloud的了解更加深入,我會不斷完善上面對每個元件的介紹。

繼續閱讀