基础简介
功能
接入方式 | 支持的选型 |
SDK | Java / Go / C++ / Node.js / PHP |
框架 | 提供 Spring Cloud / gRPC 官方集成,其他框架也可以自行集成 |
服务网格 | 通过 polaris-sidecar 接入,兼容 xDS 协议和 envoy |
K8s服务治理 | 支持 K8s Service 自动注册到 Polarismesh,扩展其治理能力 |
北极星具备服务管理、流量管理、故障容错、配置管理和可观测性五大功能:
服务管理
:包含服务发现、服务注册、健康检查和元数据管理。- 服务发现:支持 HTTP、SDK 和 DNS 服务发现方式。
- 服务注册:支持 HTTP、SDK、控制台操作和 K8s 服务注册方式。
- 健康检查:支持服务实例上报心跳,通过心跳判断实例是否健康,及时剔除异常实例。
- 元数据管理:支持在服务和实例上配置协议、版本和位置等标签,实现动态路由等功能。
流量管理
:包含动态路由、负载均衡和访问限流。- 动态路由:支持自定义路由策略,将服务的部分请求路由到部分实例,用于灰度发布等应用场景。
- 负载均衡:支持权重轮训、权重随机和权重一致性 Hash 等负载均衡算法。
- 访问限流:支持本地和分布式两种模式,被限流的请求支持排队和自定义响应。
故障容错
:包含服务熔断和节点熔断。- 服务熔断:对服务或者接口进行熔断,如果服务或者接口发生熔断,返回自定义响应。
- 节点熔断:对服务实例进行熔断,不会将请求路由到熔断的服务实例,降低请求失败率。
- 主动探测:服务和节点熔断除了被动探测,还支持主动探测,进一步降低请求失败率。
配置管理
:包含配置变更、配置校验、版本管理和灰度发布等功能。
可观测性
:提供业务流量、系统事件和操作记录等监控视图。
北极星的功能需要控制面和数据面配合实现:
控制面
:负责服务和配置数据的管理和下发,负责流量管理和熔断降级策略的管理和下发。
数据面
:负责全部服务发现和治理功能的客户端实现,采用插件化设计,支持按需加载和使用。
数据面功能分为三个部分:
服务作为被调
:当一个服务被其他服务调用时,可以使用服务注册、上报心跳、访问限流和访问鉴权功能。
服务作为主调
:当一个服务调用其他服务时,可以使用服务发现、动态路由、负载均衡和熔断降级功能。
公共部分
:支持拉取配置数据和上报监控数据。
组件
常见问题
腾讯业务都在使用北极星吗?
北极星是腾讯内部协同共建的新一代服务发现和治理平台,已整合和替代 L5 等名字服务和负载均衡系统。截止2021年底,超过90%的业务部门使用北极星,接入节点数量超过千万。
北极星开源版和内部版相同吗?
开源版和内部版的主体功能和代码相同,但是部署架构不同。开源版提供单机和集群两种部署架构,集群架构支持百万级的节点接入。内部版通过插件的方式实现了更为复杂的部署架构,支持千万级的节点接入。
北极星和 TARS 是什么关系?
北极星和 TARS 都是腾讯在微服务领域的重点开源项目。曾经,腾讯内部存在多套服务开发框架、注册中心和治理组件,使用不同开发框架的服务难以互相调用和统一管理。为了解决这个问题,腾讯内部协同共建了北极星,整合了服务注册中心和治理组件,TARS 内部版的开发框架部分已接入北极星。北极星和 TARS 开源社区也会尝试更多合作。
Loading...