Java微服务架构中常见的注册中心包含Eureka、ZooKeeper和Nacos等,用于实现服务的注册与发现,能够屏蔽、解耦服务之间的相互依赖,以便对微服务进行动态管理。本文介绍EDAS支持的注册中心、运维方式及相关操作。

注册中心

注册中心包含Eureka、ZooKeeper、Nacos等。关于各注册中心的更多信息,请参见各自官网或Github,帮助您根据实际需求选择。

无论您的应用使用哪种注册中心,EDAS都能够为您的应用提供托管和微服务治理能力。

注册中心选型

从运维角度考虑,您在EDAS中部署的应用,使用不同类型的注册中心,可以选择不同的运维方式。

使用Nacos

如果使用Nacos作为注册中心,会有以下2个运维选择:

  • 使用EDAS共享注册中心

    EDAS共享注册中心,即EDAS集成了Nacos的商用版本,以平台自带服务组件(免运维)的形式提供Nacos的服务注册与发现的能力。

    优势

    EDAS共享注册中心具有以下优势:

    • 共享组件,节省了部署、运维注册中心的成本。
    • 在服务注册和发现的调用中都进行了链路加密,保护您的服务,无需再担心服务被未授权的应用发现。
    • EDAS共享注册中心与EDAS其他组件紧密结合,为您提供一整套的微服务解决方案。
    操作

    在创建或部署K8s应用时,取消选中使用程序配置的注册中心,则无论应用中如何配置Nacos的地址,都会被覆盖、连接到EDAS共享注册中心。

  • 使用应用程序配置的注册中心,包含MSE托管和自建的Nacos操作

    在创建或部署K8s应用时,选中使用程序配置的注册中心。则EDAS会为应用配置如下参数,以免应用部署时,配置的Nacos地址被替换为EDAS共享注册中心地址,从而保证您可以继续使用应用中配置的注册中心。

    说明
    • 保证您的注册中心地址与托管到EDAS中的应用网络互通,例如在同一个VPC内。
    • 目前Nacos 2.x版本没有支持全区域的访问,因此客户端无法连接9848端口。
    • 配置使用程序配置的注册中心,请参见配置微服务治理
    -Dnacos.use.endpoint.parsing.rule=false
    -Dnacos.use.cloud.namespace.parsing=false

使用Eureka或ZooKeeper

如果使用Eureka或ZooKeeper,可以选择使用MSE托管或自建。MSE的更多信息及托管注册中心的优势,请参见什么是微服务引擎MSE

说明 保证您的注册中心地址与托管到EDAS中的应用网络互通,例如在同一个VPC内。
操作

使用Eureka或ZooKeeper,在EDAS创建或部署K8s应用时,选中使用程序配置的注册中心。具体操作,请参见配置微服务治理

您也可以在应用程序的配置中将Eureka或ZooKeeper更改为Nacos,以便使用EDAS共享注册中心。

使用其它类型的注册中心

如果使用其它类型的注册中心,例如Consul,只能继续使用您自建的注册中心。

说明 保证您的注册中心地址与托管到EDAS中的应用网络互通,例如在同一个VPC内。
操作

使用其它类型的注册中心,在EDAS创建或部署K8s应用时,需要选中使用程序配置的注册中心。具体操作,请参见配置微服务治理

您也可以在应用程序的配置中将其它类型的注册中心更改为Nacos,以便使用EDAS共享注册中心。

常见问题

为什么连接EDAS共享注册中心时提示403错误?

EDAS会注入租户鉴权信息,但鉴权优先级是用户名/密码方式高于租户信息。因此,需移除应用中对注册中心的用户名与密码配置。

如何连接MSE注册配置中心?

需在创建微服务空间时,MSE注册配置中心关联到MSE的Nacos实例。然后在创建应用时,选择该微服务空间。创建微服务空间,请参见 创建微服务空间

使用共享注册中心时,代码中如何读取共享注册中心的配置?

EDAS集成的ACM不受ACM产品下线影响。代码编写,请参见通过ACM动态推送配置