微服务(四)—— Nacos注册中心

Nacos注册中心

认识Nacos

Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富。

下载Nacos

Nacos官网,进入git,下载所需版本nacos。
windows下载zip包,linux下载gz包。
在这里插入图片描述

Windows安装

将下载的压缩包解压到不含中文的目录下。
在这里插入图片描述

端口配置

conf目录下application.properties文件中进行配置修改,默认为8848。

启动

进入bin目录中,运行单机启动命令:

startup.cmd -m standalone

在这里插入图片描述

访问

启动时,控制台会打印登录地址,访问登录地址,默认账号和密码都为nacos
在这里插入图片描述

服务注册

  1. 在父工程中添加spring-cloud-alibaba的管理依赖。

    <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. 添加nacos客户端依赖。

    <dependency>
    	<groupId>com.alibaba.cloud</groupId>
    	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  3. 在微服务配置文件中添加nacos地址。

    spring:
    	cloud:
    	    nacos:
    	      server-addr: 127.0.0.1:8848 #nacos服务地址
    

Nacos服务分级存储模型

  • 一级是服务。
  • 二级是集群。
  • 三级是实例。
    在这里插入图片描述
  • 服务调用尽可能选择本地集群的服务,跨集群调用延迟较高。
  • 本地集群不可访问时,再去访问其他集群。

服务集群以及负载均衡策略

  1. 修改application.yml,添加如下内容:
    spring:
    	cloud:
    	    nacos:
    	      	server-addr: 127.0.0.1:8848 #nacos服务地址
    	   		discovery:
        			cluster-name: SD #配置集群名称
    
  2. 在application.yml中配置负载均衡的IRule为NacosRule,这个规则会优先寻找与自己同集群的服务:
B服务名称:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
NacosRule负载均衡策略
  1. 优先选择同集群服务实例列表。
  2. 本地集群找不到提供者,才去其他集群寻找,并且会报警告。
  3. 确定了可用实例列表后,再采用随机负载均衡挑选实例。
服务实例权重设置
  1. 在Nacos控制台可以设置实例的权重值,首先选中实例后面的编辑按钮。
    在这里插入图片描述

  2. 将权重值设置为所需值,即可改变访问频率。

    • 权重值在0-1之间。
    • 权重值设置为0则完全不会被访问。
      在这里插入图片描述

Nacos环境隔离

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

使用步骤

  1. 在Nacos控制台可以创建namespace,用来隔离不同环境。
    在这里插入图片描述

  2. 然后填写一个新的命名空间信息。
    在这里插入图片描述

  3. 保存后会在控制台看到这个命名空间的id。
    在这里插入图片描述

  4. 修改application.yml,添加namespace:

    spring:
      cloud:
        nacos:
          server-addr: 127.0.0.1:8848 #nacos服务地址
          discovery:
            cluster-name: SD #配置集群名称
            namespace: 018c54f8-3c97-43cc-990c-35f8f8a10a5d #命名空间Id
    

作用

  • namespace 用来做环境隔离。
  • 每个namespace都有唯一id。
  • 不同namespace下的服务不可见。

Nacos与Eureka两者对比

  • 相同点:
    • 都支持服务注册和服务拉取。
    • 都支持服务提供者心跳方式健康检测 。
  • 不同点:
    • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式。 临时实例心跳不正常会被剔除,非临时实例则不会被剔除。
    • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时。
    • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值