大战熟女丰满人妻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繼承特性的方便之處了,這種方式用起來確實很方面,但是也帶來一個問題,就是服務提供者和服務消費者的耦合度太高,此時如果服務提供者修改了一個接口的定義,服務消費者可能也得跟著變化,進而帶來很多未知的工作量,因此小伙伴們在使用繼承特性的時候,要慎重考慮。

全部教程
主站蜘蛛池模板: 久久资源总站 | 99久久久免费精品免费 | 57pao一国产成视频永久免费 | a毛片毛费观看 | 国产探花在线观看 | 美女视频黄的免费视频网页 | 久草视频在线看 | 欧美刺激午夜性久久久久久久 | 欧美人与性动交α欧美精品图片 | 四虎跳转48小时 | 日韩一区视频在线 | 国产精品18久久久久久小说 | av线上免费观看 | 99视频在线观看免费 | 久久精品国产99国产精品免费看 | 国产精品久久久久一区二区 | 欧洲自拍偷拍 | 2022色婷婷综合久久久 | 日本在线视频毛片 | 毛片免费毛片一级jjj毛片 | 国产欧美日韩在线观看 | 亚洲一区二区三区一品精 | 天天摸夜夜摸夜夜狠狠摸 | 日韩美女va在线毛片免费知 | a毛片视频免费观看影院 | 99热免费精品 | 国产福利在线看 | 99er热久久精品中文字幕 | 国产精品香蕉 | 国产精品一区二区在线播放 | 成人a网站 | 在线观看视频一区二区 | 久久伦理 | 好吊妞人成免费视频观看 | 日日爽夜夜操 | 毛色毛片免费观看 | 日韩免费在线观看 | 色日本在线 | 欧美日韩中文在线观看 | 四虎影视在线影院4hutv | 国产热热 |