协议兼容(推荐)

提示

本章节仅适用于北极星服务端版本 >= 1.18.0

概述

如果你希望使用 Polaris 代替 Nacos 作为新的注册中心,Polaris 提供了协议兼容的方式,用户仅需要更改程序中的 nacos-client 的服务端接入地址即可。

准备Polaris服务端

需要预先安装好Polaris服务端,安装方式可参考:集群版安装

北极星服务端参数配置

apiservers:
  - name: service-nacos
    option:
      listenIP: "0.0.0.0"
      listenPort: 8848
      defaultNamespace: default
      connLimit:
        openConnLimit: false
        maxConnPerHost: 128
        maxConnLimit: 10240

在北极星的服务端配置文件 polaris-server.yaml 中,找到 apiservers 的配置,开启 service-nacos 的插件即可

参数描述

  • listenPort: 设置 nacos 协议兼容的 http 端口地址,grpc 端口会在该端口的基础上 + 1000
  • defaultNamespace: 设置 nacos 默认命名空间对应 Polaris 命名空间信息;默认情况下 polaris 的 default 命名空间 == nacos 的默认命名空间(public );即在默认 nacos 默认命名空间下配置下,如果用户连接的是 nacos-server,服务注册到的是 nacos 的 public 命名空间,如果连接的是 polaris,那么根据配置 defaultNamespace,则服务注册到的是 polaris 的 default 命名空间,配置中心同理。

注册发现

Nacos 服务名和北极星服务名映射关系

Nacos 字段 Nacos 字段值 北极星字段 北极星字段值描述
namespace 默认命名空间/非默认命名空间ID namespace default/命名空间名称
group DEFAULT_GROUP service 作为服务名的前缀
service DEFAULT_GROUP service 作为服务名的后缀,${group}__${service} 为最终的北极星服务名, 如果 group == DEFAULT_GROUP,则服务名为 ${service}
cluster DEFAULT instance.metadata 作为实例标签的一部份, 实例标签 key 为 internal-nacos-cluster

原生 Nacos-Client

Properties properties = new Properties();
properties.put(PropertyKeyConst.SERVER_ADDR, "北极星服务端IP:8848");
properties.put(PropertyKeyConst.NAMESPACE, "北极星命名空间名称");
properties.put(PropertyKeyConst.USERNAME, "可任意值");
properties.put(PropertyKeyConst.PASSWORD, "北极星用户/用户组的资源访问凭据 Token");

// 创建注册发现客户端
NamingService namingService = NacosFactory.createNamingService(properties);

Spring Cloud Alibaba

spring.cloud.nacos.username="可任意值"
spring.cloud.nacos.password="北极星用户/用户组的资源访问凭据 Token"
spring.cloud.nacos.discovery.server-addr="北极星服务端IP:8848"
spring.cloud.nacos.discovery.namespace="北极星命名空间名称"

Dubbo

dubbo
 registry
   address: nacos://北极星服务端IP:8848?username=可任意值&password={北极星用户/用户组的资源访问凭据 Token}
   parameters.namespace: 北极星命名空间名称
  metadata-report
    address: nacos://北极星服务端IP:8848

配置管理

Nacos 配置信息和北极星配置信息映射关系

Nacos 字段 Nacos 字段值 北极星字段 北极星字段值描述
namespace 默认命名空间/非默认命名空间ID namespace default/命名空间名称
group DEFAULT_GROUP group 北极星配置分组名称
dataId application.yaml file_name 北极星配置文件名称

原生 Nacos-Client

Properties properties = new Properties();
properties.put(PropertyKeyConst.SERVER_ADDR, "北极星服务端IP:8848");
properties.put(PropertyKeyConst.NAMESPACE, "北极星命名空间名称");
properties.put(PropertyKeyConst.USERNAME, "可任意值");
properties.put(PropertyKeyConst.PASSWORD, "北极星用户/用户组的资源访问凭据 Token");

// 注册配置客户端
ConfigService configService = new NacosConfigService(properties);

Spring Cloud Alibaba

spring.cloud.nacos.username="可任意值"
spring.cloud.nacos.password="北极星用户/用户组的资源访问凭据 Token"
spring.cloud.nacos.config.namespace="北极星命名空间名称"
spring.cloud.nacos.config.server-addr="北极星服务端IP:8848"
spring.cloud.nacos.config.group="北极星配置分组名称"

Dubbo

dubbo
  config-center
    address: nacos://北极星服务端IP:8848