【SpringCloud】06——Fegin服務間呼叫,負載均衡
阿新 • • 發佈:2018-11-07
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
感謝您的閱讀~~