「开源」一个支持多语言、多框架的云原生服务发现和治理中心
开源系统流程管理

一、开源项目简介
北极星是一个支持多语言、多框架的云原生服务发现和治理中心,解决分布式和微服务架构中的服务可见、故障容错、流量控制和安全问题。
二、开源协议
使用BSD 3-Clause开源协议
三、界面展示



四、功能概述
核心功能点:
- 服务注册发现和健康检查
- 以服务为中心的分布式应用架构中,通过服务和注册发现的方式维护不断变化的请求地址,提高应用的扩展能力,降低应用的迁移成本。北极星提供对注册上来的服务实例进行健康检查,阻止主调方对不健康的服务实例发送请求。
- 流量调度:路由与负载均衡
- 根据请求标签、实例标签和标签匹配规则,对线上流量进行动态调度,可以应用于按地域就近、按标签灰度和新金丝雀发布等多种场景。
- 过载保护:服务限流与故障熔断
- 对于入口服务,北极星提供服务限流功能,当负载已经超过了系统的最大处理能力时,可针对不同的请求来源和系统资源进行访问限流,避免服务被压垮。 同时北极星也提供故障熔断功能,根据实时采集的错误率等指标,及时熔断异常的下游服务、接口、实例或者实例分组,降低请求失败率。
- 可观测性
- 提供服务治理可视化监控视图,支持请求量、请求延时和请求成功率的指标查询,支持服务调用关系和多维度的流量曲线查询,实现服务治理功能和流量观测一体化。
- 配置管理
- 支持应用配置、公共配置的订阅发布、版本管理、变更通知,实现应用配置动态生效。
特色:
- 北极星的功能采用插件化的形式实现,业务可以根据需求选择使用,也非常容易实现扩展
- 提供SDK和Sidecar两种接入方式,SDK适用于高性能的业务场景,Sidecar适用于无侵入的开发模式
- 对于SDK的接入方式,提供Java、Go、C++等多种语言的客户端,功能实现相同
- 北极星SDK可以集成到常用的框架和网关中,例如Spring Cloud、gRPC和Nginx
- 适用于Kubernetes,支持K8s service和Polaris sidecar的自动注入
- 腾讯百万级服务治理中心的开源版本,沉淀了腾讯多年的分布式服务治理经验
五、技术选型
快速入门
安装部署
下载单机版
可以从以下地址获取最新版本进行下载,下载时候请选择包名为polaris-standalone-release-*.zip的软件包,并且根据当前操作系统进行筛选(windows10选择windows,mac选择darwin,Linux/Unix选择linux)。
- 访问一飞开源:https://code.exmay.com/ 下载
以polaris-standalone-release_v1.11.0-beta.2.linux.amd64.zip为例,下载后执行以下命令进行解压:
unzip polaris-standalone-release_v1.11.0-beta.2.linux.amd64.zip cd polaris-standalone-release_v1.11.0-beta.2.linux
启动服务端
在Linux/Unix/Mac平台下,执行以下命令启动北极星单机版:
./install.sh
在Windows平台下,执行以下命令启动北极星单机版:
install.bat
验证安装
curl http://127.0.0.1:8090
返回Polaris Server,证明功能正常
如需了解更多安装方式(如修改安装端口、容器化安装、集群版本安装等),可参考:部署手册
使用样例
北极星支持多语言、多框架、多形态(proxyless及proxy)的微服务进行接入。
服务注册发现和健康检查
(1) 基于主流框架开发的微服务接入可参考:
- Spring Cloud/Spring Boot接入
- gRPC-Go接入
(2) 主流语言微服务接入可参考:
- Java语言接入
- Go语言接入
- C++语言接入
(3) proxy模式的微服务接入可参考:
- Envoy接入
- DNS接入(样例开发中)
服务限流
(1) 基于主流框架开发的微服务接入可参考:
- Spring Cloud/Spring Boot接入
- gRPC-Go接入
(2) 主流语言微服务接入可参考:
- Java语言接入
- Go语言接入
- C++语言接入
(3) proxy模式的微服务接入可参考:
- Envoy接入(样例开发中)
流量调度
(1) 基于主流框架开发的微服务接入可参考:
- Spring Cloud/Spring Boot接入
- gRPC-Go接入
(2) 主流语言微服务接入可参考:
- Java语言接入
- Go语言接入
- C++语言接入(样例开发中)
(3) proxy模式的微服务接入可参考:
- Envoy接入(样例开发中)
配置管理
(1) 基于主流框架开发的微服务接入可参考:
- Spring Cloud/Spring Boot接入
(2) 主流语言微服务接入可参考:
- Java语言接入
- Go语言接入
更多指南
更多功能使用指引可参考:使用指南
详细文档
OpenAPI参考
接口手册
性能测试报告
性能报告
官网文档
如需更多详细功能介绍、架构介绍、最佳实践,可参考:官网文档
评论