Ribbon和Feign都是用于調(diào)用其他服務(wù)的,不過(guò)方式不同。
1. 啟動(dòng)類使用的注解不同,Ribbon用的是@RibbonClient,F(xiàn)eign用的是@EnableFeignClients。
2. 服務(wù)的指定位置不同,Ribbon是在@RibbonClient注解上聲明,F(xiàn)eign則是在定義抽象方法的接口中使用@FeignClient聲明。
3. 調(diào)用方式不同,Ribbon需要自己構(gòu)建http請(qǐng)求,模擬http請(qǐng)求然后使用RestTemplate發(fā)送給其他服務(wù),步驟相當(dāng)繁瑣。 Feign則是在Ribbon的基礎(chǔ)上進(jìn)行了一次改進(jìn),采用接口的方式,將需要調(diào)用的其他服務(wù)的方法定義成抽象方法即可,不需要自己構(gòu)建http請(qǐng)求。不過(guò)要注意的是抽象方法的注解、方法簽名要和提供服務(wù)的方法完全一致。