整体结构(一)
Eurake创建服务注册中心,用于服务的注册和发现。Eureka是一个高可用组件,对于任何一个实例注册之后,都需要向注册中心发送心跳,整个过程在内存中完成。
分别启动两个服务(分别是具体业务逻辑的实现),8762,8763.两个实例,分别向服务注册中心注册。
启动Ribbon负载均衡服务,向服务注册中心注册,并发现服务。Ribbon在这个过程中的作用就是负载均衡。
当ribbon服务通过restTemplet向ribbon负载均衡器调用接口时,轮询调用8762和8763两个实例接口。
执行流程(二)
为什么有了ribbon之后还要出现feign呢?(三)
Feign集成了ribbon,实现了负载均衡的功能。
Feign通过接口调用,采用基于接口的注解,相较于ribbon更简洁。
ribbon的调用方式:
@Autowired
RestTemplate restTemplate;
@HystrixCommand(fallbackMethod = "hiError")
public String hiService(String name) {
return restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class);
}
feign的调用方式(类似于微服务直接调用):
@FeignClient(value = "service-hi",fallback = SchedualServiceHystric.class)
public interface SchedualServiceHi {
@RequestMapping(value = "/hi",method = RequestMethod.GET)
String sayHiFromClientOne(@RequestParam(value = "name") String name);
}
3. feign整合了hystrix的熔断机制。
关注【被讨厌的勇气】