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

Spring Cloud微服務實踐

Spring Cloud Feign聲明式服務消費

Feign是什么

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

Ribbon負載均衡、Hystrix服務熔斷是我們Spring Cloud中進行微服務開發非常基礎的組件,在使用的過程中我們也發現它們一般都是同時出現的,而且配置也都非常相似,每次開發都有很多相同的代碼,因此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繼承特性的方便之處了,這種方式用起來確實很方面,但是也帶來一個問題,就是服務提供者和服務消費者的耦合度太高,此時如果服務提供者修改了一個接口的定義,服務消費者可能也得跟著變化,進而帶來很多未知的工作量,因此小伙伴們在使用繼承特性的時候,要慎重考慮。

全部教程
主站蜘蛛池模板: 天天狠狠色综合图片区 | 久久国产精品国产自线拍免费 | 精品日本一区二区 | 在线观看欧美亚洲日本专区 | 国产最新精品 | 破外女出血一级毛片 | 国产91精品高清一区二区三区 | 欧美亚洲一区二区三区在线 | 奇米福利视频 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 日本不卡在线播放 | 日日摸夜夜夜夜夜添 | 亚洲一区二区三区高清网 | 亚洲精品久久久久久久久久久网站 | 狠狠色伊人亚洲综合成人 | 国产精品福利视频手机免费观看 | 四虎精品永久在线 | 老子影院午夜伦不卡不四虎卡 | 四虎免费影院4hu永久免费 | 国内精品七七久久影院 | 国自产拍在线天天更新91 | 天天干天天射天天插 | 深夜影院在线视频观看 | 国产成人综合网亚洲欧美在线 | 欧美精品xxxⅹ欧美 欧美精品成人 | 在线高清免费爱做网 | 亚洲国产精品人久久 | 亚洲精品蜜桃久久久久久 | bbw满足护士 | 奇米影视大全 | 欧美亚洲国产另类 | 99精品视频在线成人精彩视频 | 亚洲精品高清在线一区二区三区 | 国内精品久久久久久久亚洲 | 欧美黄色网页 | 99精品全国免费7观看视频 | 伊人精品视频在线观看 | 日本免费一级视频 | 欧美夜夜 | 欧美色无极 | 日本成人a视频 |