鹅长微服务发现与治理巨作PolarisMesh实践-上( 三 )

  • 大规模生产应用:腾讯服务治理中心的开源版本 , 为腾讯百万服务提供标准的服务治理功能 , 沉淀了腾讯从虚拟机到容器时代的分布式服务治理经验
  • 解决哪些问题在分布式架构及微服务架构实施过程中 , 业务可能面临以下四类问题 。北极星以服务为中心 , 提供一站式解决方案 。
    鹅长微服务发现与治理巨作PolarisMesh实践-上

    文章插图
    官方性能数据在长时间的压力测试下 , 不同规格的北极星集群均维持正常运行状态 , 集群可承载的实例容量从1k实例到10w实例 , 相关依赖组件的系统资源消耗也均在预期内 , 并未出现相关依赖组件高负载不可用现象 。通过压测 , 不同规格的北极星集群可以稳定支撑服务实例数量均满足预期 。
    • 注册实例的TPS最高可达35912 , 符合接口预期
    • 服务发现的QPS最高可达116021 , 符合接口预期
    • 实例心跳的TPS最高可达78077 , 符合接口预期
    • 注销实例的TPS最高可达14356 , 符合接口预期
    架构原理资源模型PolarisMesh的资源模型与前面学习Nacos很相似 , 包括如下:
    • 命名空间:提供了一种在相同注册中心下资源的逻辑隔离的机制 , 同一命名空间下的资源命名必须唯一 , 但是跨命名空间允许存在同名的资源 。命名空间常用于多个团队或者项目之间的资源的区分隔离 。
    • 服务:一种资源对外暴露的抽象方式 , 资源本身通过端口监听的方式提供网络访问 , 并通过提供一系列预定义的服务接口 , 给主调端进行调用 。
    • 实例分组:是由一个或多个具有相同标签属性的实例组成 , 这些实例往往具备相同的特征 , 比如属于同一版本、属于同一个地域、属于同一环境 。
    • 服务实例:对应的是暴露一个或多个API接口供主调应用进行网络调用的节点 , 通过IP:PORT的方式进行唯一标识 。
    服务治理基本原理PolarisMesh是服务发现与治理中心 , 其主要应用在微服务之间的RPC调用过程中服务可见、流量控制、故障容错等场景 , 涉及服务注册、服务发现、动态路由、负载均衡、健康检查、访问限流、熔断降级 。
    鹅长微服务发现与治理巨作PolarisMesh实践-上

    文章插图
    整体流程如下:
    • RPC调用过程的参与者主要涉及两个角色:主调方和被调方 。
    • 首先 , 被调方使用服务注册功能 , 向北极星注册自身服务数据 , 包括节点列表 , 治理规则等 。
    • 第二 , 主调方通过服务发现功能 , 拉取被调方的全量服务数据 。
    • 第三 , 主调方通过路由和负载均衡功能 , 筛选出一个合适的被调方实例 , 进行RPC调用 。
    • 第四 , 主调方记录RPC调用的成功失败结果 , 通过熔断降级功能 , 剔除出现故障的被调方节点 。
    • 第五 , 北极星通过健康检查功能 , 主动剔除已经下线的被调方节点 。
    • 第六 , 被调方通过访问限流功能 , 保护自身不被主调方的异常流量给击溃 。
    服务注册服务注册指的是被调方按照服务模型将自身的服务数据注册到PolarisMesh , 以供主调方进行服务发现 。服务数据主要包括以下部分: