Nacos基本使用

Nacos基本使用

Nacos是微服务架构中,可以作为注册中心或者配置中心的技术实现,如下图所示

在这里插入图片描述
服务提供者:一次业务中,暴露接口给其它微服务调用,被其它微服务调用的服务。(提供接口给其它微服务)
服务消费者:一次业务中,调用其它微服务的服务。(调用其它微服务提供的接口)
提供者与消费者角色其实是相对的,一个服务可以同时是服务提供者和服务消费者


Nacos作为注册中心

  • 1、服务提供者在注册中心注册信息
  • 2、服务消费者拉取服务提供者列表
  • 3、服务消费者负载均衡选择一个
  • 4、服务消费者进行远程调用消费

服务提供者在向注册中心注册时,可以选择实例类型,若为临时实例,则主动向注册中心发送心跳续约,失效时被中心剔除;若为非临时实例,则注册中心主动向该实例发送心跳探测,失效时不会被中心剔除。

若注册中心的服务提供者列表发生变化时,注册中心会主动向服务消费者发送变更通知,即时变客户端服务更提供者列表

Nacos客户端搭建:

1、引入依赖

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

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

2、配置文件

spring:
  datasource:
  application:
    name: nacosserver #服务注册名
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: Cluster1 # 集群名
        namespace: 70a70a58-07be-4857-8946-36a743ef7e11 #命名空间
        ephemeral: true #是否为临时实例

Nacos服务分级存储模型

服务>集群>实例,服务调用尽可能选择本地集群的服务,跨集群调用延迟较高,本地集群不可访问时,再去访问其它集群
配置:spring.cloud.nacos.discovery.cluster-name=集群名

优先本地负载均衡配置为:userserver.ribbon.NFLoadBalancerRuleClassName=com.alibaba.cloud.nacos.ribbon.NacosRule #优先本集群,本集群内再随机

Nacos根据权重负载均衡

在Nacos的管理端进行配置,权重值越大,访问频率越高,如果权重值为0,则不再访问,可适用于优雅启停

Nacos环境隔离

Nacos中服务存储的数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离,内层Group,最内层为Service/Data
在Nacos的管理端进行namespace的新建
每个namespace都有唯一id
服务设置namespace时要写id而不是名称
不同namespace下的服务互相不可见

Nacos可以单台启动,也可以多集群启动


Nacos作为配置中心

统一配置管理,配置更改热更新,并且会将核心配置主动通知给微服务

  • 1、在Nacos管理端进行配置添加
  • 2、项目启动-(读取Nacos配置文件)-读取本地配置文件-创建Spring容器-加载Bean
  • 3、bootstrap.yml会在本地配置文件之前读取,此文件就可以先配置Nacos的信息
  • 4、引用配置依赖spring-cloud-starter-alibaba-nacos-config
  • 5、配置文件配置:spring.cloud.nacos.server-addr.config.file-extension=文件后缀名,例如yaml
  • 6、代码中使用@Value(“${}”)获取,或者@Autowired

Nacos的配置管理热更新

  • 1、使用@Value时,在使用配置数据的类上添加注解,启动热更新:@RefreshScope
  • 2、使用@ConfigurationProperties注解

多环境配置共享

微服务启动时会从nacos读取多个配置文件:例如 userserver-dev.yaml和userserver.yaml,一个为环境配置,一个为共享配置
不同微服务共享的配置文件:通过shared-configs指定、通过extension-configs指定
环境配置>共享配置>extends-configs>shared-configs>本地配置

Nacos集群搭建及配合Nginx

1、完成MySql集群部署和初始化数据库表
如果Mysql版本过低,发布参数失败,那么Nacos脚本里面,将datetime类型改为timestamp类型、去掉DEFAULT CURRENT_TIMESTAMP即可

2、配置集群配置


Nacos和Eureka对比

相同:
服务提供者在注册中心注册服务信息,服务消费者定时拉取服务列表,远程调用
提供者每隔一段时间进行心跳检测

不同:

  • 1、Nacos存在非临时节点的主动健康检测,Nacos的服务有两种实例类型
  • 2、若在定时拉取服务列表中间存在提供者变更时,Eureka无法做到实时更新,但是Nacos会主动推送消息
  • 3、Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式,AP强调数据可用性,CP强调数据可靠性
  • 4、Nacos还可以作为配置中心
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值