在合理划分好微服务间的边界后,主要从微服务的可发现性和可交互性处理服务间的横向关系。
微服务的可发现性是指当服务 A 发布和扩缩容的时候,依赖服务 A 的服务 B 如何在不重新发布的前提下,如何 能够自动感知到服务 A 的变化?这里需要引入第三方服务注册中心来满足服务的可发现性;特别是对于大规模微服 务集群,服务注册中心的推送和扩展能力尤为关键。
微服务的可交互性是指服务 A 采用什么样的方式可以调用服务 B。由于服务自治的约束,服务之间的调用需 要采用与语言无关的远程调用协议,比如 REST 协议很好的满足了 “与语言无关”和“标准化”两个重要因素, 但在高性能场景下,基于 IDL 的二进制协议可能是更好的选择。另外,目前业界大部分微服务实践往往没有达到 HATEOAS 启发式的 REST 调用,服务与服务之间需要通过事先约定接口来完成调用。为了进一步实现服务与服 务之间的解耦,微服务体系中需要有一个独立的元数据中心来存储服务的元数据信息,服务通过查询该中心来理解发 起调用的细节。
伴随着服务链路的不断变长,整个微服务系统也就变得越来越脆弱,因此面向失败设计的原则在微服务体系中就 显得尤为重要。对于微服务应用个体,限流、熔断、隔仓、负载均衡等增强服务韧性的机制成为了标配。为进一步提 升系统吞吐能力、充分利用好机器资源,可以通协程、Rx 模型、异步调用、反压等手段来实现。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。