java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > nacos将服务注册到不同的命名空间下

nacos将服务注册到不同的命名空间下问题

作者:m0_47784895

Nacos是SpringCloudAlibaba架构中最重要的组件,提供注册中心、配置中心和动态DNS服务三大功能,如果需要配置多个数据库适配的环境,启动服务时需要将服务注册到不同的命名空间下,并配置新部署的网关服务ip和端口或者域名

nacos将服务注册到不同的命名空间下

nacos是配置中心和注册中心的结合,功能丰富。

Nacos是SpringCloudAlibaba架构中最重要的组件。

Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。

能够对接Springcloud、Spring、Dubbo等流行框架。

具体操作

如果一个nacos同时要配置多个数据库适配的环境,启动服务为了不影响其他环境的服务之间的接口调用,需要将服务注册到另外的命名空间下,并配置新部署的网关服务ip和端口或者域名,那么修改application.yml配置最下面两行的名称进行注册即可,否则之间拿过来原有的配置直接使用就会注册到同一个空间下导致前端的接口调用出现一会发到dev环境的服务上面,一会发到新部署的服务上面的情况,如果想注册到其他空间可以修改namespace即可,在nacos的服务管理-服务列表中可查看注册的服务信息,(写的有点啰嗦了不好意思):

#一个nacos同时要注册多个数据库适配的环境,启动服务为了不影响其他环境的服务,
#需要将服务注册到另外的命名空间下,修改application.yml配置最下面两行的名称即可:
spring.
    cloud:
        nacos:
          discovery:
            server-addr: http://nacos.glxt.dev.think.com/
            group: config
            namespace: glxt-mysql
#每个服务配置的最上面有这样的配置,如微服务A的glxt-A的配置文件
spring.cloud.nacos.discovery:
    ip: glxt-service-A
    port: 80

nacos在不同环境下指定不同的namespace的值

nacos的namespace是uuid,随机生成的。但是生产和测试环境的namespace又不一样。

在不想更改配置文件的前提下,如果动态设置namespace的值。

翻看源码查看可以指定jvm启动参数 或者环境变量

jvm参数 

-Dans.namespace=3fc8e189-1a5c-49b6-8bb1-4aacd17cfe14
-Dacm.namespace=3fc8e189-1a5c-49b6-8bb1-4aacd17cfe14

一个指定配置中心,一个指定注册中心。服务器ip地址和端口不同,只能更改host去实现了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文