服务发现

定义

服务发现指的主调方是根据服务名标识,拉取服务实例列表,以供后续进行服务调用的操作。

服务发现的方式

北极星支持以下4种方式进行服务发现:

通过SDK进行服务发现

北极星提供了多语言SDK,SDK通过ConsumerAPI提供3个接口进行服务发现:

  • getAllInstances:获取服务下全量的服务实例列表,不做任何过滤。
  • getHealthyInstances:获取服务下健康的服务实例列表,只包含健康实例,不包含被熔断、不健康、隔离、权重为0的实例。
  • getOneInstances:针对健康的服务实例列表,进行动态路由和负载均衡,返回单个可用的服务实例。

使用参考:SDK服务发现使用指南

通过服务框架进行服务发现

服务框架会提供通用的服务发现接口,应用在RPC之前,会自动进行服务发现,获取到可用的实例进行RPC调用。

北极星对主流的服务框架(SpringCloud,Dubbo,gRPC)做了适配,用户无需修改业务逻辑代码,只需引入北极星的框架扩展库,即可实现自动发现。

使用参考:框架服务发现使用指南

使用DNS进行服务发现

北极星通过polaris-sidecar提供DNS功能,用户程序可以通过DNS域名访问的方式,实现无侵入的服务发现。

使用参考:DNS服务发现使用指南

使用OpenAPI服务发现

北极星控制面提供基于Rest标准的OpenAPI,用户可通过OpenAPI完成服务发现的操作。

使用参考:OpenAPI服务发现指南