当前位置: 首页 > article >正文

【Nacos】健康检查与环境隔离

1. 健康检测

1.1 两种健康检查机制

Nacos作为注册中心,需要感知服务的健康状态,才能为服务调用方提供良好的服务

Nacos 中提供了两种健康检查机制:

1. 客户端主动上报机制

  • 客户端通过心跳上报方式告知服务端(nacos注册中心)健康状态,默认心跳间隔5秒:
  • nacos会在超过15秒未收到心跳后将实例设置为不健康状态,超过30秒将实例删除

2. 服务端反向探测机制

  • nacos主动探知客户端健康状态,默认间隔为20秒
  • 健康检查失败后实例会被标记为不健康,不会被立即删除

比如领导管理员工工作,员工主动汇报,每天主动向领导会汇报自己的工作进度;另外一种是领导主动询问。

注意:Nacos 中的健康检查机制不能主动设置,健康检查机制是和 Nacos的服务实例类型强相关的.

1.2 Nacos服务实例类型

Nacos的服务实例(注册的节点)分为临时实例非临时实例:

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

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

如果没有相关配置,我们的服务就默认是临时实例,如果服务宕机(直接关闭服务模拟),会发现Nacos上的服务就会直接被删除掉。

如果我们在配置中配置上相关的文件,让服务变成非临时实例的话,即使服务被down掉,Nacos也不会从服务列表中将其删除。

配置如下:

这样配置之后,我们的服务就不会从注册中心中删除。即使服务没有了注册中心任然保留信息:

2. Nacos环境隔离

在开发中,我们的服务肯定有多种不同的开发环境。例如:开发环境、测试环境、预发布环境、发布环境(生产环境)。

通常情况下,这些环境之间是不能够进行相互通信的,也就是测试环境的服务不能够访问到开发环境的服务。Nacos是可以通过namespace(命名空间)来实现环境隔离的,不同的namespace的服务之间不可见。

在默认情况下我们的服务都是在一个public的namespace下面,这时候所有的服务都可以通信。

想要实现环境隔离就需要我们自己创建不同的命名空间。

2.1 创建namespace

新增命名空间

配置namespace

在nacos中创建好了新的namespace,还需要通过配置服务,来完成命名空间的修改。配置文件中的namespace不是“命名空间名称”,而是“命名空间ID”。

spring:
  cloud:
    nacos:
      discovery:
        namespace: xxxxxxxxx

2.2 测试远程调用

现在我的服务情况如下:

public下面只有product-service服务

order-service在dev下:

此时通过order服务调用product服务就会报错:

Servlet.service() for servlet [dispatcherServlet] 
in context with path [] threw exception [Request processing failed: 
java.lang.IllegalStateException: No instances available for product-service] 
with root cause

如果将其中一个product服务命名空间id修改到dev,则可以成功调用服务。此时在一个空间下可以进行通信。


http://www.kler.cn/a/298973.html

相关文章:

  • 【数据结构】2——二叉树遍历
  • 用hiredis连接redis
  • 如何优化谷歌排名更有效?
  • Linux之Shell命令
  • 【YouTube采集】按搜索关键词批量爬取视频数据,并封装成exe界面软件!
  • ubuntu使用命令行查看硬件信息
  • STM32 的 CAN 通讯全攻略
  • io多路复用
  • cross-plateform 跨平台应用程序-06-uni-app 介绍
  • Spring Boot 执行流程已经 负载均衡执行流程图
  • java实现文本相似度计算
  • 基于C#的UDP协议消息传输
  • sql中索引查看是否生效
  • 计算机网络 --- 【1】欢迎来到计算机网络/计算机网络基本概念/计算机网络、互连网、互联网的区别
  • Springcould -第一个Eureka应用 --- day02
  • Apache POI用法
  • [网鼎杯 2020 朱雀组]Nmap 历程记录
  • Java 远程执行服务器上的命令
  • HP电脑如何启动硬件检测
  • 数据结构应用实例(六)——最短路径