一、Nacos环境隔离
Nacos提供了namespace来实现环境隔离功能。

 

 

nacos中可以有多个namespace。namespace下可以有group、service等。不同namespace之间相互隔离,例如不同namespace的服务互相不可见。

使用Nacos Namespace 环境隔离 步骤:

1.在Nacos控制台可以创建namespace,用来隔离不同环境
2.然后填写一个新的命名空间信息:
3.保存后会在控制台看到这个命名空间的id: 默认为public
4.修改order-service的application.yml,添加namespace:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ
        namespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f9 # 命名空间,填ID

 

5.重启order-service后,再来查看控制台:
6.此时访问order-service,因为namespace不同,会导致找不到userservice,控制台会报错:

二、Nacos与Eureka的区别

Nacos与eureka的共同点:
都支持服务注册和服务拉取
都支持服务提供者心跳方式做健康检测


Nacos与Eureka的区别:


Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
临时实例心跳不正常会被剔除,非临时实例则不会被剔除
Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

 

 

Nacos的服务实例分为两种l类型:

-临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。

-非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。

服务注册到Nacos时,可以选择注册为临时或非临时实例,临时实例宕机时,会从nacos的服务列表中剔除,而非临时实例则不会 。通过下面的配置来设置:

spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false # 设置为非临时实例

 

posted on 2024-10-13 11:00  努力--坚持  阅读(6)  评论(0编辑  收藏  举报