文章插图
官方性能数据在长时间的压力测试下 , 不同规格的北极星集群均维持正常运行状态 , 集群可承载的实例容量从1k实例到10w实例 , 相关依赖组件的系统资源消耗也均在预期内 , 并未出现相关依赖组件高负载不可用现象 。通过压测 , 不同规格的北极星集群可以稳定支撑服务实例数量均满足预期 。
- 注册实例的TPS最高可达35912 , 符合接口预期
- 服务发现的QPS最高可达116021 , 符合接口预期
- 实例心跳的TPS最高可达78077 , 符合接口预期
- 注销实例的TPS最高可达14356 , 符合接口预期
- 命名空间:提供了一种在相同注册中心下资源的逻辑隔离的机制 , 同一命名空间下的资源命名必须唯一 , 但是跨命名空间允许存在同名的资源 。命名空间常用于多个团队或者项目之间的资源的区分隔离 。
- 服务:一种资源对外暴露的抽象方式 , 资源本身通过端口监听的方式提供网络访问 , 并通过提供一系列预定义的服务接口 , 给主调端进行调用 。
- 实例分组:是由一个或多个具有相同标签属性的实例组成 , 这些实例往往具备相同的特征 , 比如属于同一版本、属于同一个地域、属于同一环境 。
- 服务实例:对应的是暴露一个或多个API接口供主调应用进行网络调用的节点 , 通过IP:PORT的方式进行唯一标识 。
文章插图
整体流程如下:
- RPC调用过程的参与者主要涉及两个角色:主调方和被调方 。
- 首先 , 被调方使用
服务注册
功能 , 向北极星注册自身服务数据 , 包括节点列表 , 治理规则等 。 - 第二 , 主调方通过
服务发现
功能 , 拉取被调方的全量服务数据 。 - 第三 , 主调方通过
路由和负载均衡
功能 , 筛选出一个合适的被调方实例 , 进行RPC调用 。 - 第四 , 主调方记录RPC调用的成功失败结果 , 通过
熔断降级
功能 , 剔除出现故障的被调方节点 。 - 第五 , 北极星通过
健康检查
功能 , 主动剔除已经下线的被调方节点 。 - 第六 , 被调方通过
访问限流
功能 , 保护自身不被主调方的异常流量给击溃 。