五、服务的消费 - Ribbon + RestTemplate
ribbon调用服务的步骤:
1、添加依赖:
2、启动类添加注解,开启Eureka客户端:
3、配置application.yml
4、注册RestTemplate模板对象
5、编写Controller,调用微服务
注意:ribbon是一个客户端的负载均衡器,和传统的负载均衡服务器Nginx有什么不同?
ribbon是客户端负载均衡
nginx是服务端负载均衡
硬件负载均衡 - F5
修改负载均衡的策略:
六、服务的消费 - Feign
什么是Feign?
Feign底层就是ribbon,但是Feign的写法更加面向对象一些。
整合Feign的步骤:
1、添加依赖
2、启动类注解(Feign是有启动类注解)
3、配置application.yml
4、编写controller,消费者的入口
5、编写一个接口层,调用微服务
七、断路器-Hystrix
什么是Hystrix?
简单来说,Hystrix就是微服务之间的保险丝。
为什么需要Hystrix?
在实际开发过程中,微服务和微服务之间通常来说会互相调用,但是假如有一个微服务因为某些原因崩溃,这个时候可以会造成崩溃传递,一旦崩溃开始传递,就形成了服务雪崩的问题。
Hystrix是如何进行服务资源保护的?
Hystrix的核心在于进行资源隔离,简单来说就是不要让服务器的所有线程资源都去做同一件事件。
隔离:不要将所有的线程资源用来做同一件事。
- 线程池隔离(默认)
- 信号量隔离
降级:当A服务调用B服务时,如果B服务的资源被耗光,则A服务后续的资源会立刻终止调用,保护资源的可用性。然后这些被终止的线程资源,可以调用一个降级方法,降级方法会返回一个合理的默认值,从而运行业务继续往后运行。
熔断:熔断机制是指,当A服务调用B服务,如果大量的线程出现问题(阻塞、报错、超时等等),Hystrix的熔断器就会打开。熔断器开打后,后续所有请求B服务的线程,全部直接调用降级方法。当隔了一段时间后,Hystrix会自动进入半开状态,半开状态打开后,请求B服务的线程就能够再次尝试请求B服务,这个时候如果B服务正常,则熔断器自动关闭,如果还是不正常,熔断器又会回到全开的状态。
Ribbon如何使用Hystrix?
1、添加依赖:
2、启动依赖
3、改造服务的调用方法
4、配置熔断器的设置
Feign如何整合Hystrix?
1、因为feign已经默认整合了Hystrix所以无需再进行依赖
2、配置application.yml
3、实现远程调用的接口,并且重新方法就是该远程方法降级方法(fallback方法)
配置Hystrix的仪表盘的功能:
什么是Hystrix的仪表盘?
Hystrix是用来隔离服务和服务之间的资源的,除了提供隔离资源功能之外,还提供了服务的监控功能,在Hystrix的仪表盘中,可以直观的观察到某个微服务的请求量的情况,从而知道当前哪些微服务是正常对外提供服务的。
1、创建一个仪表盘的工程
添加依赖:
启动类上添加注解:
启动仪表盘的工程:
2、配置需要监控的微服务
在需要监控的微服务中,配置这个Servlet
3、将需要监控的微服务的Servlet地址,注册到仪表盘的工程
实心圆:它有颜色和大小之分,分别代表实例的健康程度和流量大小。它的健康度从绿色、黄色、橙色、红色递减。通 过该实心圆的展示,我们就可以在大量的实例中快速的发现故障实例和高压力实例。
曲线:用来记录 2 分钟内流量的相对变化,我们可以通过它来观察到流量的上升和下降趋势。