对比其他组件

虽然业界没有组件的形态和北极星完全相同,但是一些组件的功能和北极星有所重叠,下面介绍北极星和这些组件的区别。

Eureka

从定位上来说,Eureka是服务注册中心,只提供服务发现、服务注册和健康检查功能。北极星是服务发现和治理中心,除服务发现、服务注册和健康检查之外,还提供流量控制、故障容错和安全能力。

从架构上来说,Eureka集群采用异步复制的方式同步数据,每个Server将收到的写请求异步复制给集群内的其他Server。当Client越来越多时,需要扩容Server。但是,增加Server也会增加Server之间的复制请求,导致扩容效果不明显。北极星服务端计算存储分离,计算层节点可以随着客户端节点的增加平行扩展,轻松支持百万级节点接入。

Istio

Istio通过流量劫持的方式实现服务发现和治理,这种方式有些问题。首先,增加了资源消耗和请求延时,特别是CPU消耗,请求量大的业务难以接受。第二,每个企业使用的RPC协议各不相同,目前Istio主要支持HTTP和gRPC,难以快速支持其他RPC协议。第三,流量劫持直接影响业务的每个请求,稳定性和运维工作要求极高。最后,和主流微服务框架无法共存,业务改造的成本大、风险高。

北极星不仅提供无侵入Sidecar,还提供高性能SDK,实现语义相同的服务发现和治理功能,用户可以根据业务场景自行选择。对于请求量大和资源消耗敏感用户,可以在业务应用或者开发框架中集成北极星SDK,快速补齐服务发现和治理功能。