【SpringCloud】06——Fegin服务间调用,负载均衡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lnazj/article/details/83821516

1.什么是Feign
Feign是一个声明式的Web服务客户端
使用:只需创建一个接口,然后在上面添加注解即可实现服务间调用,Feign是集成了Ribbon,也可实现负载均衡。

2.Feign 和Ribbon区别?
Ribbon
是一个基于 HTTP 和 TCP 客户端的负载均衡器
它可以在客户端配置 ribbonServerList(服务端列表),然后轮询请求以实现均衡负载,Ribbon 是通过RestTemplate 模版拼接html进行调用。

@RestController
@Api(tags = {"部门表接口"})
@RequestMapping(value="/Dept")
public class DeptController_Consumer {

    //单机版
    // private static final String REST_URL_PREFIX="http://localhost:8001";

    //通过微服务名称访问微服务
    private static final String REST_URL_PREFIX="http://MICROSERVICECLOUD-DEPT8001";
    @Autowired
    private RestTemplate restTemplate;

    @PostMapping(value="/dept/add")
    public  boolean addDept(Dept dept){
        return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
    }
}

Feign
feign本身里面就包含有了ribbon。
Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去调用,而 Feign 是一个使用起来更加方便的 HTTP 客戶端,使用起来就像是调用自身工程的方法,而感觉不到是调用远程方法。Feign是通过接口实现服务间调用的。

@RestController
@Api(tags = {"部门表接口"})
@RequestMapping(value="/dept")
public class DeptController_Consumer {
    //面向接口编程
    @Autowired
    private DeptClientService deptClientService;

    @PostMapping(value="/add")
    public  boolean addDept(@RequestBody Dept dept){

        return deptClientService.addDept(dept);
    }
    }

3.Feign如何使用?
以做的一个项目为例:
https://blog.csdn.net/Sunny5319/article/details/82319587

感谢您的阅读~~

猜你喜欢

转载自blog.csdn.net/lnazj/article/details/83821516