Nacos-namespace环境隔离

Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离

 

1.在Nacos控制台可以创建namespace,用来隔离不同环境

 

2.然后填写一个新的命名空间信息:

 

3.保存后会在控制台看到这个命名空间的id:

 

4.修改order-service的application.yml,添加namespace:

spring:
  application:
    name: orderservice
  cloud:
    nacos:
      server-addr: tajia-nacos:8848 # nacos服务地址
      discovery:
        cluster-name: SH
        namespace: 3ab6057e-25db-42b8-9f50-12a5a8601b0e # dev环境

 

5.重启order-service后,再来查看控制台

 

6.此时访问order-service,因为namespace不同,会导致找不到userservice,控制台会报错:

09-30 20:36:14:000 ERROR 14176 --- [nio-8088-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: userservice] with root cause

 

7.Nacos环境隔离总结
a.每个namespace都有唯一id
b.服务设置namespace时要写id而不是名称
c.不同namespace下的服务互相不可见

posted on 2021-09-30 20:40  Ruthless  阅读(1491)  评论(0编辑  收藏  举报