当前位置: 首页 >服务端 > 怎么用feign远程调用别人的接口

怎么用feign远程调用别人的接口

Feign远程接口调用

clouds234@163.com

2018-8-6

以下都是使用在springboot2.0.4内置启动插件基础上

Feign-only 不注册到eureka

单独使用feign远程调用接口,不讲feign注册到注册中时的使用方法;只需要在feignclient注解添加url;如下:

@FeignClient(name="url-feign",url="http://localhost:8099",fallback=UrlFeignFallback.class)

public interface UrlFeignClient {

@RequestMapping("/test/getuser")

public String getUser();

}

@Component

class UrlFeignFallback implements UrlFeignClient{

@Override

public String getUser() {

retu "error urlfeign!!!";

}

}

这个是service层;不需要单独添加@service注解也可以使用@autowired注入;另外注意这里的fallback需要在配置文件启用;

在yml文件添加:

feign:

hystrix:

enabled: true

feign 注册到eureka

如果feign是注册到eureka的;那么可以简化注解,并且可以实现负载均衡等功能;如下:

@FeignClient(value="server1",fallback=SchedualServiceHiHystric.class)

public interface SchedualServiceHi {

@RequestMapping(value="/hi",method=RequestMethod.GET)

String sayHiFromClientOne(@RequestParam(value="name")String name);

}

/**

* 当消费者请求超时时返回本类信息;

* 本类需实现消费接口;每个方法重写一个超时信息;

* @author clouds234@163.com

* @date 2018年7月5日

*/

@Component

class SchedualServiceHiHystric implements SchedualServiceHi {

@Override

public String sayHiFromClientOne(String name) {

retu "sorry "+name+",the server is not answer!!!";

}

}

这里的value="server1"是注册到eureka中心的服务名称;

spring cloud Feign添加headers

使用spring cloud 做saas服务器时,经常会通过Feign调用远程服务。有时候我们的远程服务可能做了某些权限验证。需要验证header或者token什么的。如果某没有token,可能会被阻止调用。那如何添加token呢。如果每个方法都手动设置headers,那未免太麻烦。可以通过一个切面,自动帮我们添加请求header。

直接上代码:

@Configuration

public class FeignConfig implements RequestInterceptor

{

//这里是我自己的redis代理,用不上可以去掉

@Autowired

private IRedisProxy redisProxy;

@Override

public void apply(RequestTemplate requestTemplate)

{

// 生成远程调用认证token

//String token = TokenUtil.TokenCreate("feign");

// 放到redis,设置时长为10S,一般10S后还没有完成请求则token失效

//redisProxy.setex(token, 10, token);

//设置token,关键方法

}

}

作者:郭玖锋
来源链接:https://blog.csdn.net/weixin_28893705/article/details/113718266

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/113085.html

标签:Feign
分享给朋友:

“怎么用feign远程调用别人的接口” 的相关文章