大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Spring Cloud微服務實踐

Spring Cloud Feign聲明式服務消費

Feign是什么

Feign是Netflix公司開發的一個聲明式的REST調用客戶端;

Ribbon負載均衡、Hystrix服務熔斷是我們Spring Cloud中進行微服務開發非?;A的組件,在使用的過程中我們也發現它們一般都是同時出現的,而且配置也都非常相似,每次開發都有很多相同的代碼,因此Spring Cloud基于Netflix Feign整合了Ribbon和Hystrix兩個組件,讓我們的開發工作變得更加簡單,就像Spring Boot是對Spring+SpringMVC的簡化一樣,Spring Cloud Feign對Ribbon負載均衡、Hystrix服務熔斷進行簡化,在其基礎上進行了進一步的封裝,不僅在配置上大大簡化了開發工作,同時還提供了一種聲明式的Web服務客戶端定義方式;

使用Feign實現消費者

使用Feign實現消費者,我們通過下面步驟進行:

第一步:創建普通Spring Boot工程

首先我們來創建一個普通的Spring Boot工程,取名為:05-springcloud-service-feign;

第二步添加依賴

要添加的依賴主要是spring-cloud-starter-netflix-eureka-client和spring-cloud-starter-feign,如下:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
    <version>1.4.5.RELEASE</version>
</dependency>
<!--Spring Cloud熔斷器起步依賴-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
    <version>1.4.5.RELEASE</version>
</dependency>

第三步:添加注解

在項目入口類上添加@EnableFeignClients注解表示開啟Spring Cloud Feign的支持功能;

第四步聲明服務

定義一個HelloService接口,通過@FeignClient注解來指定服務名稱,進而綁定服務,然后再通過SpringMVC中提供的注解來綁定服務提供者提供的接口,如下:

@FeignClient("01-springcloud-service-provider")
public interface HelloService {
    @RequestMapping("/service/hello")
    public String hello();
}

這相當于綁定了一個名叫01-springcloud-service-provider (這里01-springcloud-service-provider大小寫01-SPRINGCLOUD-SERVICE-PROVIDER都可以 ) 的服務提供者提供的/service/hello接口;

我們服務提供者提供的接口如下:

@GetMapping("/service/hello")
public String hello() {
    System.out.println("服務提供者1。。。。。。。");
    return "Hello, Spring Cloud,Provider 1";
}

第五步使用Controller中調用服務

接著來創建一個Controller來調用上面的服務,如下:

@RestController
public class FeignController {
    @Autowired
    HelloService helloService;
    @RequestMapping("/web/hello")
    public String hello() {
        return helloService.hello();
    }
}

第六步:屬性配置

在application.properties中指定服務注冊中心、端口號等信息,如下:

server.port=8082
#配置服務的名稱
spring.application.name=05-springcloud-service-feign
#配置eureka注冊中心地址
eureka.client.service-url.defaultZone=http://eureka8761:8761/eureka/,http://eureka8762:8762/eureka/

第七步測試

依次啟動注冊中心、服務提供者和feign實現服務消費者,然后訪問如下地址:http://localhost:8082/web/hello。

使用Feign實現消費者的測試

之前我們為了簡化RestTemplate操作,將之封裝在一個BookService中,但同時我們也發現BookService中的方法幾乎都是模板式的,寫起來很枯燥,Spring Cloud Feign對此進行了進一步的封裝,簡化了我們的封裝操作。

Feign的基本使用,在HelloService類中聲明接口時,我們發現這里的代碼可以直接從服務提供者的Controller中復制過來,這些可以復制的代碼Spring Cloud Feign對它進行了進一步的抽象,這里就用到了Feign的繼承特性,Feign繼承特性的方便之處了,這種方式用起來確實很方面,但是也帶來一個問題,就是服務提供者和服務消費者的耦合度太高,此時如果服務提供者修改了一個接口的定義,服務消費者可能也得跟著變化,進而帶來很多未知的工作量,因此小伙伴們在使用繼承特性的時候,要慎重考慮。

全部教程
主站蜘蛛池模板: 日本一级在线观看 | 成人午夜啪啪免费网站 | 亚洲一区成人 | 2021久久精品国产99国产 | 97影院午夜在线观看视频 | 欧美日韩色 | 精品视频香蕉尹人在线 | 久青草网站 | 国产一区在线观看视频 | 日本一极毛片兔费看 | 久久综合精品不卡一区二区 | 国产在线精品香蕉综合网一区 | 一本到亚洲网 | 99热久久国产精品这里小说 | 久草视频在线网 | 狠狠亚洲婷婷综合色香 | 亚洲国产高清视频 | 国产日韩欧美一区二区三区综合 | 91视频毛片 | 精品亚洲永久免费精品 | 91精品国产91久久综合 | 久久www视频| 亚洲爱婷婷色婷婷五月 | 亚洲精品毛片久久久久久久 | jizz欧洲| 免费看欧美一级a毛片 | 久久夜夜操 | 成人性生活视频 | 国产一级一片免费播放i | 久热中文字幕在线精品免费 | 午夜免费福利不卡网址92 | 大尺度毛片 | 天天躁日日躁成人字幕aⅴ 天天躁日日躁狠狠躁黑人躁 | 国外成人免费高清激情视频 | 日韩成人一级 | 久久久不卡国产精品一区二区 | 奇米久久久 | 一级片视频网站 | 福利午夜国产网站在线不卡 | 四虎精品成在线播放 | 香蕉久久综合精品首页 |