使用feign调用restful服务

1 篇文章 0 订阅
1 篇文章 0 订阅

我有一个rest接口:

@RestController
public class ComputeController {

    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public String add() {
        return "testFeign_add";
    }

    @RequestMapping(value = "/add2")
    public Integer add2(@RequestParam Integer a, @RequestParam Integer b) {
        int rs = a + b;
        return rs;
    }
}

怎么调用呢:

public static void main(String[] args) {

    ComputeService computeService = Feign.builder().decoder(new GsonDecoder()).target(ComputeService.class,
                "http://localhost:3333");

    System.out.println(computeService.add());
    System.out.println(computeService.add2(1,2));
    System.out.println(computeService.add3(1,2));
}

看看ComputeService 怎么写的:

public interface ComputeService {

    @RequestLine("GET /add")
    public String add();

    @RequestLine("GET /add2?a={a}&b={b}")// get 提交
    public Integer add2(@Param("a") Integer a, @Param("b") Integer b);

    @RequestLine("POST /add2")
    @Body("a={a}&b={b}")// post 提交
    public Integer add2(@Param("a") Integer a, @Param("b") Integer b);

}

用到的依赖.

这里反序列化用的是gson,jackson的自己换一下,fastjson等目前是不支持的,自己面壁去写。restful依赖的就不贴了
        <dependency>
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-core</artifactId>
            <version>8.18.0</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-gson</artifactId>
            <version>8.18.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${gson.version}</version>
        </dependency>

简直不要太简单。不过要求比较高的地方需要配置一下底层的httpclient,比如连接池、比如超时时间,还有更高级的服务订阅、负载均衡和断路器。

Ps:在分布式服务中通常用ribbon做负载均衡器,用hystrix做断路器,用zookeeper或者euraka做服务发布。建议用springcloud的一整套解决方案。

用f5的就不用这些了,f5有自己的负载均衡。使用f5需要考虑单点和性能问题,F5方案毕竟多走了一层网络。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值