一: 编写Eureka Feign Client: 1.在POM文件中引入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2. 配置application.yml spring: application: name: eureka-feign-client server: port: 8765 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ 3. 在EurekaFeignClientApplication上增加@EnableEurekaClient开启 Eureka Client的功能,增加@EnableFeignClients开启FeignClient功能。 4. 新建一个FeignConfig类 在FeignConfig 类加上@Configuration 注解,表明该类是一个配置类,并注入一个BeanName为feignRetryer 的Retryer的Bean 。 注入该Bean 之后, Feign 在远程调用失败后会进行重试。 5. 新建一个EurekaClientFeign接口 在接口上加@FeignClient 注解来声明一个Feign Client,其中value 为远程调用其他服务的服务名, FeignConfig.class 为Feign Client 的配置类。 在EurekaClientFeign 接口内部有一个sayHiFromClientEureka()方法,该方法通过Feign 来调用eureka-client 服务的“/hi”的API 接口 6. 新建一个HiService类 Hi Service 类注入EurekaClientFeign 的Bean ,通过EurekaClientF eign 去调用sayHiFromClientEureka()方法。 7. 新建一个HiController类 在Hi Controller 上加上@RestController 注解,开启RestController 的功能,写一个API 接口“/hi”, 在该接口调用了Hi Service 的sayHi ()方法。HiService 通过EurekaClientFeign 远程调用eureka-cl ient 服务的API 接口"/hi" 8. 启动eureka-server功能,端口为8761。启动两个eureka-client示例,端口分别为8762,8763。 (如果已经启动,请忽略。9. 启动eureka-feign-client服务后,在浏览器上访问http://localhost:8765/hi 浏览器会 轮流 显示如下内容: hi forezp,i am from port : 8763 hi forezp , i am from port : 8762 由此可见, Feign Client 远程调用了eureka-client 服务(存在端口为8762 和8763 的两个实例)的“/hi” API 接口, Feign Client 有负载均衡的能力。 查看起步依赖spring-cloud-starter-openfeign的pom 文件,可以看到该起步依赖默认引入了Ribbon 和Hystrix 的依赖,即负载均衡和熔断器的依赖。 注意:feign默认是HttpURLConnection进行http请求发送。 如果要使用apache httpclient请参考 eurka-feign-httpclient module。