趣加面试题:
微服务的组件有哪些?
1.Eureka:注册中心
让a服务知道b服务的地址
2.Feign:类似于bubbo
调用其他服务:
a服务里调用b服务接口,b服务的接口有@FeginClient,创建动态代理,根据@RequestMapping来动态构造出请求地址
3.Ribbon:负载均衡
多台机器部署b服务,如何知道调用哪个?
默认轮询
4.Zull:网关
前端调用后端统一走zull
5.Hystix:断路器
1.隔离:每一个线程池访问一个服务
2.降级:当某个压力过载时关闭服务
3.熔断:下游服务异常时上游不调用
情景:已知a服务调用b服务,b服务异常,此时a仍调用b,a也会因为请求堆积不可用造成服务雪崩,所以当b不可用造成压力过载,此时出发降级,打开断路器,并且打开休眠窗框口计时,此时a再调用会直接调到failback快速响应返回异常,等时间到了,断路器半开,a服务调用时尝试调用b服务,如果返回正常,断路器关闭,熔断恢复,如果依然异常,断路器打开,休眠时间窗口重新打开。