springcloud微服务(五)——Nacos注册中心(二)

springcloud微服务(五)——Nacos注册中心(二)

​ 上篇介绍了Nacos注册中心快速入门,本篇继续讲解Nacos其他功能。

1.服务多级存储模型

​ 所谓多级存储模型就是把一个服务的多个实例放在不同的集群。条件有限,下面介绍用IDEA模拟多个实例,放在不同集群。

  • 在userservice的配置文件中配置集群
spring:
  cloud:
    nacos:
      server-addr: localhost:8848  # nacos服务地址
      discovery:
        cluster-name: HZ # 集群名称,自定义。HZ代指杭州
  • 模拟多个实例
    springcloud微服务(五)——Nacos注册中心(二)_第1张图片
    springcloud微服务(五)——Nacos注册中心(二)_第2张图片

可以改变集群名称后再生产一个实例(注意不要重启之前的实例)。

  • 效果。
    springcloud微服务(五)——Nacos注册中心(二)_第3张图片

​ 点击详情。
springcloud微服务(五)——Nacos注册中心(二)_第4张图片

2.NacosRule负载均衡。

​ 上面将实例放到了不同的集群中,要想优先访问本地集群还要在orderservice中进行配置。

spring:
  cloud:
    nacos:
      server-addr: localhost:8848  # nacos服务地址
      discovery:
        cluster-name: HZ # 集群名称,自定义。HZ代指杭州
userserver:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡策略
  • 访问orderservice六次进行测试。

springcloud微服务(五)——Nacos注册中心(二)_第5张图片
springcloud微服务(五)——Nacos注册中心(二)_第6张图片
springcloud微服务(五)——Nacos注册中心(二)_第7张图片
可以看到只会访问HZ集群的实例,并且其中一个实例访问了两次,另一个访问了四次。如果我们把HZ集群的实例停掉会怎么样,如下图。

springcloud微服务(五)——Nacos注册中心(二)_第8张图片
在这里插入图片描述

可以看到仍然能访问成功,访问的是SH的集群。总结:1.NacosRule负载均衡会优先访问同集群的实例。2.本地集群找不到提供者,才会去其他集群找。3.确定集群后,再采用随机负载均衡选择实例。

3.服务实例权重设置

springcloud微服务(五)——Nacos注册中心(二)_第9张图片
点击编辑,设置权重

springcloud微服务(五)——Nacos注册中心(二)_第10张图片
一般权重在0~1之间,权重值越大,被访问概率越大,权重为0则不会被访问。

4.环境隔离

​ Nacos环境隔离可以用作区分开发环境,测试环境,生产环境等。

springcloud微服务(五)——Nacos注册中心(二)_第11张图片
springcloud微服务(五)——Nacos注册中心(二)_第12张图片

点击确定之后,空间创建成功。

springcloud微服务(五)——Nacos注册中心(二)_第13张图片
然后在orderservice中的application.yml中配置namespace。

spring:
  cloud:
    nacos:
      server-addr: localhost:8848  # nacos服务地址
      discovery:
        cluster-name: HZ # 集群名称,自定义。HZ代指杭州
        namespace: bb41b21a-099a-450a-bc4d-6cf81483e7a7 #命名空间ID
		

重启服务后,无法访问。

springcloud微服务(五)——Nacos注册中心(二)_第14张图片
因为userservice和orderservice已经在不同的命名空间了,无法进行访问。

springcloud微服务(五)——Nacos注册中心(二)_第15张图片

springcloud微服务(五)——Nacos注册中心(二)_第16张图片
5.Nacos和eureka对比。

  • 共同点:
    • 都支持服务注册和拉取
    • 都支持服务提供者心跳方式做健康检测
  • 区别:
    • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
    • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
    • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
      区别:
    • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
    • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
    • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
    • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;eureka采用AP方式

你可能感兴趣的:(微服务,微服务,spring,cloud,java)