演示客戶端應用如何訪問注冊在EurekaServer里的微服務
一、概念和定義
采用Ribbon或Feign方式訪問注冊到EurekaServer中的微服務。
1、Ribbon實現了客戶端負載均衡,
2、Feign底層調用Ribbon
3、注冊在EurekaServer中的微服務api,不通過ip訪問,而是通過ServiceId訪問
其中ServiceId即配置項spring.application.name標識的注冊到EurekaServer中的名稱。
使用Feign/Ribbon客戶端訪問微服務的api,如:
http://ServiceHelloA/HelloA?name=tom
http://ServiceHelloB/HelloB?name=Jerry
說明客戶端負載均衡Ribbon解釋了ServiceHelloA映射的ip+端口.
二、開發案例
1、Ribbon服務代碼
@Service
public class HelloARibbonService {
@Autowired
RestTemplate restTemplate;
public String visitHelloA(String name) {
return restTemplate.getForObject("http://SERVICEHELLOA/HelloA?name="+name,String.class);
}
}
2、Feign服務代碼
@FeignClient(value = "SERVICEHELLOA")
public interface HelloAFeignService {
@RequestMapping(value = "/HelloA",method = RequestMethod.GET)
String visitHelloA(@RequestParam(value = "name") String name);
}
三、案例說明
1、通過Ribbon訪問HelloA
http://localhost:8301/HelloARibbon?name=lexiaofei
2、通過Feign訪問HelloA
http://localhost:8321/HelloAFeign?name=liangshengqi
發現服務端調用是在8201 和 8202之間負載均衡的。
四、代碼下載
https://github.com/lexiaofei/workspace_SpringRibbonFeign.git