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

  • 多语言应用开发:支持Java、Go、C、C++、PHP、Lua,不劫持业务请求,几乎不增加请求延时,CPU 消耗低,不需要部署和运维 Sidecar 。支持 grpc 等框架和北极星 SDK 的集成,框架用户不需要直接使用北极星 SDK 。比如:
    • Java应用开发:polaris-java(Polaris Java客户端实现)、grpc-java-polaris(使用grpc-java与polaris-java的集成)、spring-cloud-tencent(SpringCloud与腾讯开源中间件的集成解决方案)、spring-boot-polaris(SpringBoot与polaris-java的集成)、polaris-java-agent(polaris-java注入到SpringCloud和Dubbo) 。
    • Go应用开发polaris-go(Polaris Go客户端)、grpc-go-polaris(grpc-java与polaris-go的集成)、go-kratos(go-kratos与polaris-go的集成)、go-zero(go-zero与polaris-go的集成)、go-frame(go-frame与polaris-go的集成)、dubbo-go(dubbo-go与polaris-go的集成)、kitex(kitex与polaris-go的集成) 。
  • Sidecar:劫持业务请求,有一定的请求延时,CPU 消耗较高,适用于无侵入的开发场景 。
  • JavaAgent:对于Java的应用,直接通过字节码的方式加载到进程中,通过拦截器实现无感的接入 。
  • 支持 nginx 等网关和北极星 SDK 的集成 , 支持网关将请求转发到北极星服务 。
  • 支持 k8s service 自动注册到北极星,实现 k8s service 和框架服务的统一管理 。
  • 特色亮点
    • 一站式服务治理中心:集服务注册中心和服务治理控制面于一体,帮助业务解决分布式或者微服务架构面临的注册发现、故障容错、流量控制和安全问题 。
    • 支持多种开发语言:提供Java、Go和C++等多种高性能、功能语义相同的SDK,可以轻松集成到不同的技术栈,帮助企业实现统一的服务发现和治理 。
    • 支持常用开发框架:北极星服务治理SDK可以集成到gRPC和Spring Cloud等开发框架中,帮助框架完善服务治理功能 。框架用户不感知 , 接入成本低 。
    • 支持Kubernetes:提供原生的k8s polaris-controller,支持k8s service自动注入,帮助k8s无缝兼容微服务框架体系,实现跨集群的服务发现和治理 。
    • 服务网格:提供高性能SDK和无侵入Sidecar两种接入方式,采用SDK和Sidecar的服务可以互相访问,功能语义相同,适用于不同的业务场景 。
    • 大规模生产应用:腾讯服务治理中心的开源版本,为腾讯百万服务提供标准的服务治理功能,沉淀了腾讯从虚拟机到容器时代的分布式服务治理经验
    解决哪些问题在分布式架构及微服务架构实施过程中,业务可能面临以下四类问题 。北极星以服务为中心,提供一站式解决方案 。
    鹅长微服务发现与治理巨作PolarisMesh实践-上

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

    文章插图
    整体流程如下:

    推荐阅读