SPringCloud:Nacos快速入门及相关属性配置

文章介绍了如何快速入门Nacos,包括添加依赖、配置YML文件,以及服务分级存储、集群负载均衡、权重设置、环境隔离(namespace)的详细步骤。同时,对比了Nacos与Eureka的区别,如Nacos支持服务端主动健康检查和实时服务列表更新。
摘要由CSDN通过智能技术生成

目录

一、Nacos快速入门

1、在父工程中添加spring-cloud-alilbaba的管理依赖

2、如果有使用eureka依赖,将其注释

3、添加nacos的客户端依赖

4、修改yml文件,注释eureka配置

5、启动测试

二、Nacos相关属性配置

1、Nacos服务分级存储

2、根据集群负载均衡

3、设置权重负载均衡

4、环境隔离--namespace

5、临时实例

6、Nacos与eureka的区别


一、Nacos快速入门

1、在父工程中添加spring-cloud-alilbaba的管理依赖

            <!--nacos的管理依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

2、如果有使用eureka依赖,将其注释

3、添加nacos的客户端依赖

        <!-- nacos客户端依赖包 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

4、修改yml文件,注释eureka配置

spring:  
  cloud:
    nacos:
      server-addr: localhost:8848

5、启动测试

二、Nacos相关属性配置

1、Nacos服务分级存储

服务跨集群调用问题

服务调用尽可能选择本地集群的服务,跨集群调用延迟较高

本地集群不可访问时,再去访问其它集群

配置集群属性

1、修改配置文件

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: SH  # 配置集群名称。也就是机房位置 SH代指上海

2、在Nacos控制台可以看到集群变化

2、根据集群负载均衡

1、在yml文件设置集群

2、在yml文件设置负载均衡

userservice: #服务名称
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  # 负载均衡规则

结论:

1、优先选择同集群服务实例列表

2、本地集群找不到提供者,才去其它集群寻找,并且会报警告

3、确定了可用实例列表后,再采用随机负载均衡挑选实例

3、设置权重负载均衡

1、在Nacos控制台可以设置实例的权重值,首先选中实例后面的编辑按钮


2、将权重设置为0-1,测试

结论:

1、Nacos控制台可以设置实例的权重值,0~1之间

2、同集群内的多个实例,权重越高被访问的频率越高

3、权重设置为0则完全不会被访问

4、环境隔离--namespace

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

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

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

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

4、修改yml文件,添加namespace

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: orderservice # order的服务名称
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: HZ  # 配置集群名称。也就是机房位置 SH代指上海
        namespace: 1c7289b5-e79d-4ce5-9067-e44f24fe6d5d #命名空间,填id dev环境

5、配置完后重启服务,发现服务已经被隔离开

 

 因为namespace不同,再次访问服务会报异常错误

结论:

1、namespace用来做环境隔离

2、每个namespace都有唯一id

3、不同namespace下的服务不可见

5、临时实例

服务注册到Nacos时,可以选择注册为临时或非临时实例,通过下面的配置来设置:
 

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: orderservice # order的服务名称
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: HZ  # 配置集群名称。也就是机房位置 SH代指上海
        namespace: 1c7289b5-e79d-4ce5-9067-e44f24fe6d5d #命名空间,填id dev环境
        ephemeral: false #设置非临时实例

6、Nacos与eureka的区别

Nacos与eureka的共同点

1、都支持服务注册和服务拉取

2、都支持服务提供者心跳方式做健康检测

Nacos与Eureka的区别

1、Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模

2、临时实例心跳不正常会被剔除,非临时实例则不会被剔除

3、Nacos支持服务列表变更的消息推送模式,服务列表更新更及时

4、Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

相关视频地址微服务技术栈导学1_哔哩哔哩_bilibili


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值