SpringCloud服務消費者-openFeign元件
作用·:spring cloud提供了一個基礎元件方便不同服務之間的HTTP呼叫,那就是openFeign openFeign預設是整合了Ribbon,預設實現了負載均衡
呼叫介面的程式碼流程只有兩步:建立介面並且註解:
下面是對pom檔案的分析:
<dependencies> <!--同時也是一個client端 需要對其引入pom-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--依賴openfeign pom檔案申明-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--eureka整合了hystrix 所以必須對其進行引入-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
</dependencies>
下面是對application.yml檔案的解讀:
server:
port: 8090
spring:
application:
name: openFeign
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8082/eureka/
啟動類的程式碼解讀:
@SpringCloudApplication
@EnableFeignClients //標明這個註解,是表示這個模組是需要呼叫其他模組的介面的
@EnableHystrixDashboard //代表開啟了dashboard介面檢視熔斷
public class ApplcationFeign {
public static void main(String[] args){
SpringApplication.run(ApplcationFeign.class, args);
}
具體程式碼的呼叫類:
@FeignClient(value = "eurekaclient", fallback = ApiServiceError.class) // 其中value屬性是指屬性那個application.name 名稱
public interface ApiService {
@RequestMapping(value = "hello", method = RequestMethod.GET) //這裡是對應了具體的介面路徑,需要到原模組中去尋找
String test();
}
同時我們需要注意的一點就是它是整合了ribbon是可以負載均衡的
程式碼流程如下:
實現介面的class中的內容如下:
@Component
public class ApiServiceError implements ApiService {
@Override
public String test() {
return "伺服器發生故障";
}
}
第二步就是:
@FeignClient(value = "eurekaclient", fallback = ApiServiceError.class) // 其中value屬性是指屬性那個application.name 名稱,其中fallback屬性就是出現異常情況之後需要返回
public interface ApiService {
@RequestMapping(value = "hello", method = RequestMethod.GET) //這裡是對應了具體的介面路徑,需要到原模組中去尋找
String test();
}
我們在知道了熔斷器的使用之後,同時可以新增一個功能就是熔斷器的監控功能
如下是對openFeign模組的pom檔案改造:主要就是新增了兩個pom包:
<!--需要使用到web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--使用dashboard介面檢視熔斷-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
然後在啟動類上面需要新增註解:
@SpringCloudApplication
@EnableFeignClients //標明這個註解,是表示這個模組是需要呼叫其他模組的介面的
@EnableHystrixDashboard //代表開啟了dashboard介面檢視熔斷
public class ApplcationFeign {
public static void main(String[] args){
SpringApplication.run(ApplcationFeign.class, args);
}
/**
* 將HystrixMetricsStreamServlet注入到spring容器中去,交給它管理
* @return
*/
@Bean
public ServletRegistrationBean getServlcet(){
HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet );
registrationBean.setLoadOnStartup(1);
registrationBean.addUrlMappings("/hystrix.stream");
registrationBean.setName("HystrixMetricsStreamServlet");
return registrationBean;
}
}
啟動成功之後可以訪問如下地址:http://localhost:8081/hystrix
相關文章
- springcloud之自定義簡易消費服務元件SpringGCCloud元件
- 《springcloud 一》搭建註冊中心,服務提供者,服務消費者SpringGCCloud
- SpringCloud學習之路(四) - 服務消費者(Feign)SpringGCCloud
- springcloud微服務實戰 學習筆記三 服務消費者SpringGCCloud微服務筆記
- SpringCloud 教程 | 第二篇: 服務消費者(rest+ribbon)SpringGCCloudREST
- SpringCloud 9.OpenFeign服務介面呼叫SpringGCCloud
- springcloud簡介及註冊中心和單體專案拆分服務者消費者SpringGCCloud
- 企業分散式微服務雲SpringCloud SpringBoot mybatis - 服務消費者(Feign)分散式微服務GCCloudSpring BootMyBatis
- Spring Cloud(四)服務提供者 Eureka + 服務消費者 FeignSpringCloud
- SpringCloud-eureka服務註冊發現以及消費流程SpringGCCloud
- SpringCloud Alibaba實戰(8:使用OpenFeign服務呼叫)SpringGCCloud
- SpringCloud 服務負載均衡和呼叫 Ribbon、OpenFeignSpringGCCloud負載
- Spring Cloud(三) 服務提供者 Eureka + 服務消費者(rest + Ribbon)SpringCloudREST
- SpringCloud學習系列之二 ----- 服務消費者(Feign)和負載均衡(Ribbon)SpringGCCloud負載
- 白話SpringCloud | 第四章:服務消費者(RestTemple+Ribbon+Feign)SpringGCCloudREST
- 業餘草 SpringCloud教程 | 第三篇: 服務消費者(Feign)(Finchley版本)SpringGCCloud
- SpringCloud分散式微服務雲架構 第三篇: 服務消費者(Feign)(Finchley版本)SpringGCCloud分散式微服務架構
- 業餘草 SpringCloud教程 | 第二篇: 服務消費者(rest+ribbon)(Finchley版本)SpringGCCloudREST
- SpringCloud Alibaba(二) - Sentinel,整合OpenFeign,GateWay服務閘道器SpringGCCloudGateway
- SpringCloud分散式微服務雲架構第二篇: 服務消費者(rest+ribbon)(Finchley版本)SpringGCCloud分散式微服務架構REST
- YouGov:只有35%的消費者信任無人機送餐服務Go無人機
- Springcloud電子商城系統 java B2B2C-服務消費者(rest+ribbon)SpringGCCloudJavaREST
- 讓消費者享受更優質的通訊服務BIQ
- spring cloud微服務分散式雲架構-服務消費者FeignSpringCloud微服務分散式架構
- hyperf從零開始構建微服務(二)——構建服務消費者微服務
- SpringCloud-OpenFeignSpringGCCloud
- SpringCloud微服務系列(4): 服務發現與消費及客戶端負載均衡RibbonSpringGCCloud微服務客戶端負載
- SpringBoot整合Kafka(生產者和消費者都是SpringBoot服務)Spring BootKafka
- spring cloud微服務分散式雲架構(三)-服務消費者(Feign)SpringCloud微服務分散式架構
- 消費者雲CSE微服務實踐微服務
- 轉載:史上最簡單的SpringCloud教程 | 第二篇: 服務消費者(rest+ribbon)(Finchley版本)SpringGCCloudREST
- OpenFeign 服務呼叫與負載負載
- ①SpringCloud 實戰:引入Eureka元件,完善服務治理SpringGCCloud元件
- 圖解Dubbo,Dubbo服務消費詳解圖解
- Kafka 消費組消費者分配策略Kafka
- Java springboot B2B2C o2o多使用者商城 springcloud架構 (三) 服務消費者(Feign)JavaSpring BootGCCloud架構
- 使用多種客戶端消費WCF RestFul服務(一)——服務端客戶端REST服務端
- SpringCloud元件: GateWay整合Eureka轉發服務請求SpringGCCloud元件Gateway