熔断和降级的区别是什么

一直傻傻分不清楚熔断和降级的区别,他们之间好像是一体的,但又好像不同;有没人能说明白?
比如服务A调用B,是在A端熔断还是B端熔断,是在A端降级还是B端降级?

首先你要理解微服务中的服务提供者与服务消费者,服务消费者是客户端,服务提供者是服务端
降级:降级是对客户端的一种操作,他通常被配置在客户端的yml配置文件中,淘宝双十一都经历过把,双十一当天退款功能是点不开的,那是因为退款的客户端服务被降级了,不对外提供服务了
熔点:熔断是服务端的一种操作,他是一种保护机制就好像你家的空开那样
你可以想象一下如果一个服务突然宕机了会发生什么情况,你可能会觉得大不了就这个服务访问不了,其实实际情况不是这样的因为在微服务下任何的一次业务调用都会是多个服务协调工作的,如果其中一个服务宕机了那么会照成整个业务调用链条异常,卡在宕机的服务上一直请求超时,这样高并发情况下会堆积好多的请求给下一个节点,最后可能会引起整个微服务雪崩
熔断就是为了解决这个问题,他能确保你这个服务宕机了服务也能正常响应,只不过响应的内容是你定义好的错误消息内容,这样可以确保整个服务正常运作,只是有一个小环节出了点问题而已,不影响大流程的执行