简介
开发 IDEA 2019.1
Feign是Netflix公司开发的一个声明式的REST调用客户端;
Ribbon负载均衡、Hystrix服务熔断是我们Spring Cloud中进行微服务开发非常基础的组件,在使用的过程中我们也发现它们一般都是同时出现的,而且配置也都非常相似,每次开发都有很多相同的代码,因此Spring Cloud基于Netflix Feign整合了Ribbon和Hystrix两个组件,让我们的开发工作变得更加简单,就像Spring Boot是对Spring+SpringMVC的简化一样,Spring Cloud Feign对Ribbon负载均衡、Hystrix服务熔断进行简化,在其基础上进行了进一步的封装,不仅在配置上大大简化了开发工作,同时还提供了一种声明式的Web服务客户端定义方式
Feign它主要用于消费者,简言之,导入依赖后,
-
消费者
- (1)创建一个接口,接口上方添加注解requestMapping(“/test01”).
- (2)创建控制类,requestMapping(“/testUser”),这个是消费者的路径,自定义
- (3)注册到注册中心9100,端口默认8080 -
在提供者
(1)创建一个类User,添加姓名,年龄属性,创建,get/set方法,有参构造,无参构造。重写toString()方法
(2)创建控制类,添加控制类创建方法test1用于传参requestMapping (“/test01”),requestMapping内部的值需要与接口值一致,在控制类内部return new User(“飞鱼”,18)
(3)端口8081,注册到注册中心9100
导入依赖
创建消费者
添加依赖(整合了Ribbon和Hystrix两个组件,所以不用导入他们的依赖)
要添加的依赖主要是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-openfeign</ artifactId>
< /dependency >
记得把<>内部有空格删掉,否则报错(我不加空格的话会显示不完整)
碰到问题请留言
provider关键代码
package com.springcloud.controller;
import com.springcloud.model.User;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@EnableEurekaClient
public class ProviderClient {
@RequestMapping("/test3")
public Object show3(){
return new User("郭飞宇map",18);
}
}
配置文件
#指定服务名字 这个名称将在服务消费者时被调用,取值任意,建议使用服务名
spring.application.name=