springcloud费话之Eureka接口调用(feign)
Posted liuyuhangcastle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springcloud费话之Eureka接口调用(feign)相关的知识,希望对你有一定的参考价值。
目录:
springcloud费话之Eureka服务访问(restTemplate)
springcloud费话之Eureka接口调用(feign)
springcloud费话之断路器(hystrix in feign)
使用eureka服务发现实现服务器之间的http访问(feign)
使用restTemplate的访问方式还是比较复杂的,需要对其中的一些内容进行解析,增加了代码
因此在服务调用之间,希望恢复单应用的调用service一样简单,于是使用feign的调用方式
因为feign底层是使用了ribbon作为负载均衡的客户端,而ribbon的负载均衡也是依赖于eureka 获得各个服务的地址,所以要引入eureka-client,实际上上述的依赖并不需要更改
具体流程如下:
1.依赖
首先在springcloud官方网站上找到feign依赖,如下图
复制进pom
2.添加启动类注解
在启动类上添加注解@EnableFeignClients,添加后代码如下:
package com.lyh.lyh_eureka_server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class EurekaClientRun
public static void main(String[] args)
SpringApplication.run(EurekaClientRun.class, args);
3.创建feign的访问接口,代码如下:
package com.lyh.lyh_eureka_server.Interface;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
//这里为请求的服务器的spring的name
@FeignClient("eureka-client")
public interface FeignService
//映射名
@RequestMapping("/getInfo")
public String getInfo();
4.创建上述接口的实现类,部分代码如下:
t eurekaClient;
@Resource
private FeignService feignService;
// 触发的接口 by feign
@RequestMapping("/getInfoFromClientByFeign")
public Object getInfoFromClientByFeign() throws URISyntaxException
String obj = feignService.getInfo();
System.out.println(obj.toString());
return obj;
5.将如上代码复制到client2和client3中
6.测试
以上是关于springcloud费话之Eureka接口调用(feign)的主要内容,如果未能解决你的问题,请参考以下文章
springcloud费话之Eureka服务访问(restTemplate)
springcloud费话之断路器(hystrix in feign)