spring微服务宏观概念
本片从宏观的角度,说明微服务的重要概念,后续会有实际操作,怎么集成开发、原理等。
网关
断路器
是一种容错机制,用于防止故障的扩散。在服务调用失败、超时、异常等情况下,能够快速失败并阻止进一步的失败请求发送到问题服务,从而防止整个系统因单个服务的故障而崩溃。
拟人化解释:
比如:你们家,你大舅开鞋厂,二舅开包厂,三舅开裤带厂,你们家给他们三家供货,提供皮革。这几天赶上皮革节,他们三家搞活动,大舅说我要3万张皮革,二舅说要1万张,三舅说给点边角料就行。你们开始24小时不停的生产,最终3口人全部累到,你这3个舅活动也没办完,提前结束。
这就是一个资源不可用,导致全面崩溃!
记住,断路器是加在调用方的;
当断路器感知,被调用方(资源方)不可用时,直接告诉自己不可用。
如果放在资源方,断路器无法感知自己不好用,就算感知了,怎么通知调用方,难道发送http请求?
有人会问:让调用方直接失败不就行吗?
也行,但这是限流。其实断路器可以理解为逆向限流!
采用断路器还是限流,看你们公司怎么考虑。
两个重要概念
降级:当发生错误时返回兜底数据。
熔断:当错误发生的结果达到设定的阈值时,直接返回兜底数据。
断路器应该加在那些服务上面?没必要每个都加吧
原则:就是你觉得,这个服务一定不能奔溃,那就在调用方加上断路器。
支付、靠近数据库的服务、就是越靠近资源的服务。
应具备那些功能
官网能持续维护;轻量化;资源占用低;可与spring feign天然集成;可兼容大众化的监控平台。
边外扩展
一般断路器都是在系统内部使用的,对外一般都是通过http框架去调用,容错方式和断路器类似,有的框架可以说就是,比如:Resilience4j