eureka是一個高可用的組件,它沒有后端緩存,每一個實例注冊之后需要向注冊中心發送心跳,在默認情況下erureka server也是一個eureka client ,必須要指定一個 server。
Spring Cloud 入門教程(二): 配置管理
假如需要搭建同多台服務器時,當然可以每台服務器做同樣配置,但維護和同步會很麻煩。我理解的配置服務至少有兩種不同場景: 1). 多個客戶使用同一配置: 比如,多台服務器組成的集群,假如后端使用同一數據庫,那么每台服務器都是用相同的配置。 2). 不同客戶使用不同的配置: 比如典型的場景是,開發,測試,生產使用相同的系統,但使用不同的數據庫
刷新 http://locahost/8881/hello,
頁面內容仍然和之前一樣,並沒有反映GIT中最新改變, 重啟config-server也一樣,沒有任何變化。要讓客戶端應用感知到這個變哈,
Spring Cloud提供了解決方案是,客戶端用POST請求/refresh方法就可以刷新配置內容。 spring-boot-starter-actuator是一套監控的功能,可以監控程序在運行時狀態,其中就包括/refresh的功能。 2. 通過Webhook自動觸發/refresh方法刷新配置
Spring Cloud 入門教程(四): 分布式環境下自動發現配置服務
應用只需要提供它需要的配置所在在的config server的名字就可以了, 在前面例子中,配置服務的名字就是“config-server”。那我們現在就把之前的服務和應用稍作修改, 來達到自動發現服務的方案。
Spring Cloud 入門教程(五): Ribbon實現客戶端的負載均衡
負載均衡可分為服務端負載均衡和客戶端負載均衡,服務端負載均衡完全由服務器處理,客戶端不需要做任何事情。而客戶端負載均衡技術,
客戶端需要維護一組服務器引用,每次客戶端向服務端發請求的時候,會根據算法主動選中一個服務節點。常用的負載均衡算法有: Round Robbin, Random,Hash,StaticWeighted等。
@LoadBalanced
restTemplate.getForObject("http://SERVICE-HELLOWORLD/",String.class);
Spring Cloud 入門教程(六): 用聲明式REST客戶端Feign調用遠端HTTP服務
要做一件事, 需要知道三個要素,where, what, how。即在哪里( where)用什么辦法(how)做什么(what)。什么時候做(when)我們納入how的范疇。 1)編程式實現: 每一個要素(where,what,how)都需要用具體代碼實現來表示。傳統的方式一般都是編程式實現,業務開發者需要關心每一處邏輯 2)聲明式實現: 只需要聲明在哪里(where )做什么(what),而無需關心如何實現(how)。Spring的AOP就是一種聲明式實現,比如網站檢查是否登錄,開發頁面邏輯的時候,
只需要通過AOP配置聲明加載頁面(where)需要做檢查用戶是否登錄(what),而無需關心如何檢查用戶是否登錄(how)。如何檢查這個邏輯由AOP機制去實現,
而AOP的登錄檢查實現機制與正在開發頁面的邏輯本身是無關的。
@FeignClient(value = "SERVICE-HELLOWORLD")
public interface HelloWorldService {
@RequestMapping(value = "/",method = RequestMethod.GET)
String sayHello();
}
Spring Cloud 入門教程(七): 熔斷機制 -- 斷路器
ribon: @HystrixCommand(fallbackMethod = "serviceFailure") feigin: @FeignClient(name = "SERVICE-HELLOWORLD", fallback = HelloWorldServiceFailure.class)
Spring Cloud 入門教程(八): 斷路器指標數據監控Hystrix Dashboard 和 Turbine
Dashboard 只能監控一個
Turbine 可以同時監控所有
Spring Cloud 入門教程(九): 路由網關zuul
zuul: routes: ribbo: path: /api-ribbon/** serviceId: service-ribbon feign: path: /api-feign/** serviceId: service-feign ----------------------------------------------------- 這時啟動zuul服務, 然后訪問http://localhost:8904/api-ribbon可直接路由到http://localhost:8901/. http://localhost:8904/api-feign/hello可路由到http://localhost:8902/hello filterType:返回一個字符串代表過濾器的類型,在zuul中定義了四種不同生命周期的過濾器類型,具體如下: pre:路由之前 routing:路由之時 post: 路由之后 error:發送錯誤調用
Spring Cloud 入門教程(十):和RabbitMQ的整合 -- 消息總線Spring Cloud Netflix Bus
Spring Cloud Netflix Bus是Spring Cloud的消息機制,當Git Repository 改變時,通過POST請求Config Server的/bus/refresh,Config Server 會從repository獲取最新的信息並通過amqp傳遞給client,
完成配置文件的自動刷新