美文网首页
如何设计出容忍依赖项和高可靠服务的微服务

如何设计出容忍依赖项和高可靠服务的微服务

作者: robot_test_boy | 来源:发表于2022-09-03 00:07 被阅读0次
为什么要可靠性?

没有哪个微服务是一座不与外界联系的孤岛,每个微服务总归要隶属于某个更大的系统。这些依赖于其他下游合作方服务来完成对用户有益的功能。

不管在哪种复杂系统中,故障都是不可避免的。具体到每个微服务,它们都会因为各种各样的原因而出现故障。这其中可能是代码引入了漏洞缺陷,也可能是部署不稳定导致的。此外,底层基础设施也有可能导致系统出现问题,比如资源会由于负载太高而达到饱和状态,下层服务结点会出现异常,甚至于整个数据中心都可能出现故障。

彻底消除微服务应用中的故障是不可能的——与之对应的投入将是一个无底洞!反之,重点应该放在设计出能够容忍依赖项出现故障的微服务,让这些微服务能够优雅地从故障中恢复正常或者能够减轻这些故障对其功能的影响。

什么是可靠性?微服务有哪些常见故障清单?

如何度量一个微服务的可靠性

每个服务的可用性都会对整个应用的可用性的产生影响。

微服务常见故障清单

连锁故障:也是一种常见故障类型

大部分故障发生在4个领域:硬件、通信、依赖项和内部。正反馈导致的连锁故障是微服务应用中一种很常见的故障形式。通常,大部分是连锁故障由服务过载所导致的。

重点看通信和依赖项这两大类故障。

如何设计微服务的可靠通信,以减少依赖性

1. 同步通信的7种解决方案

设计可靠通信之如何优雅重试

设计可靠通信之4种后备方案:优雅降级、缓存、功能冗余和桩数据

设计可靠通信之设置合理的超时时间

设计可靠通信之设置合理的断路器(熔断器)

2. 异步通信的解决方案

设计可靠通信之使用消息队列进行异步交互

如何设计微服务的服务可靠,以减少依赖性

设计高可靠性服务之健康检查

设计可靠服务之合理的限流策略

跨服务标准通信

跨服务通信标准的两种方案:框架和服务网格

摘取自 摩根·布鲁斯和保罗·A.佩雷拉的《微服务实战》

相关文章

  • 如何设计出容忍依赖项和高可靠服务的微服务

    为什么要可靠性? 没有哪个微服务是一座不与外界联系的孤岛,每个微服务总归要隶属于某个更大的系统。这些依赖于其他下游...

  • 如何在AWS中实现跨区域异地双活架构?

    在设计和构建服务时,弹性和可靠性是非常重要的。虽然,很多云服务已经提供了弹性和可靠性的解决方案,但是如何将他们运用...

  • 服务高可靠

    在复杂系统中,故障是不可避免的。在应用的整个生命周期中,极有可能的是,任何可能发生的灾难未来终会发生。因此,开发者...

  • 01、DDD和微服务的关系

    软件架构模式的演进 微服务设计和拆分的困境 1、微服务的粒度应该多大呀?2、微服务到底应该如何拆分和设计呢?3、微...

  • SDtalk-10:阿里茶山服务设计实践-4

    2015年的茶山:服务设计微日记 《服务设计微日记》以微日记的故事写作形式,引用每天生活和工作的真实服务设计案例及...

  • 第二章架构设计之技术实践篇(上)

    本章要点 高可用设计手段 高并发设计手段 服务无状态化设计 服务负载均衡设计 服务幂等性设计 1.高可用设计手段 ...

  • Nginx(未完待续)

    Nginx 高效可靠Web服务和中间件是一个开源且高性能、可靠的Http中间件(企业场景使用最多)、代理服务。 高...

  • SDtalk:从用户体验设计到全链路设计

    尤文文: 从用户体验设计的角度来学习服务设计的思考方式和闪光点。 什么是服务设计? 服务设计是有效的计划和组织一项...

  • SpringCloud Hystrix 服务降级

    什么是Hystrix? 在分布式环境中,不可避免地会有许多服务依赖项失败。Hystrix是一个库,通过添加延迟容忍...

  • SDtalk-12:阿里茶山服务设计实践-6

    2017年的茶山:服务设计实战 《服务设计微日记2》继续以微日记的故事写作形式,引用每天生活和工作的真实服务设计案...

网友评论

      本文标题:如何设计出容忍依赖项和高可靠服务的微服务

      本文链接:https://www.haomeiwen.com/subject/pvcngrtx.html