一個springcloud入門案例

springcloud作爲目前中小型項目極受歡迎的微服務框架,其重要性不必多說,本文主要是以一個簡單的入門程序來了解springcloud體系的構成,各個組件之間的分工與協作等等.
首先,用IDEA初始化一個demo,我的項目結構圖是這樣的:
springclouddemo項目結構圖
有5個子模塊,下面來一一講解這5個子模塊在項目中充當的角色和起到的作用:
1.demo-eurekaclient,這是springcloud的註冊服務組件,即服務生產者,主要配置如圖所示:
服務生產者配置
HelloController:
HelloController
MyEurekaClient:服務生產者啓動類,@EnableEurekaClient註解表示服務客戶端:
MyEurekaClient
2.demo-eurekaserver:springcloud微服務註冊中心,用於服務生產者註冊服務地址;
微服務註冊程序
MyEurekaServer:微服務註冊程序啓動類,@EnableEurekaServer表示這是用於微服務註冊的服務
MyEurekaServer
3.demo-servicefeign:服務消費者,下圖爲基本配置
在這裏插入圖片描述
HelloController:最終服務消費者客戶端對外暴露的接口,HelloFeign通過http協議調用服務名爲service-hello的微服務;
HelloController
HelloFeign:通過http調用service-hello,如果出現異常,會調用回調函數HelloFeignCallback;
HelloFeign
HelloFeignCallback:回調函數HelloFeignCallback
4.demo-serviceribbon:負載均衡組件,如果在註冊中心註冊了多個名爲service-hello的服務,ribbon會通過內部的負載均衡機制選擇一個service來調用,默認是採用輪詢機制;
ribbon配置
RibbonService:配合熔斷器一起完成service的負載均衡,和HelloFeign不同的是,我這裏採用RestTemplate來實現http調用,熔斷器生效會調用helloError方法;
RibbonService
ServiceRibbon:開啓負載均衡組件功能的service啓動類;
ServiceRibbon
5.demo-servicezuul:springcloud網關組件,我們都知道在微服務架構中,系統會被拆分爲很多個微服務。那麼作爲客戶端要如何去調用這麼多的微服務呢?難道要一個個的去調用嗎?很顯然這是不太實際的,我們需要有一個統一的接口與這些微服務打交道,這就是我們需要服務網關的原因。
網關組件的基本配置
ServiceZuul:網關組件啓動程序,注意這些註解;
網關組件啓動程序
這幾個模塊的啓動順序,先啓動註冊中心,再啓動服務生產者,然後是負載均衡和服務消費者,如果配了網關的話,再啓動服務消費者之前也把網關組件啓動;

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