Spring-cloud学习笔记---Spring Cloud Alibaba Nacos简介

Spring-cloud学习笔记—Spring Cloud Alibaba Nacos简介

1. Nacos简介

  1. Nacos (Dynamic Naming and Configuration Service)是阿⾥巴巴开源的⼀个针对微服务架构中服务发现、配置管理和服务管理平台。
  2. Nacos就是注册中⼼+配置中⼼的组合(Nacos=Eureka+Config+Bus)
  3. 官⽹:https://nacos.io
  4. 下载地址:https://github.com/alibaba/Nacos

2. Nacos功能特性

  1. 服务发现与健康检查
  2. 动态配置管理
  3. 动态DNS服务
  4. 服务和元数据管理(管理平台的⻆度,nacos也有⼀个ui⻚⾯,可以看到注册的服务及其实例信息(元数据信息)等),动态的服务权重调整、动态服务优雅下线,都可以去做

3. Nacos 单例服务部署

  1. 下载解压安装包,执⾏命令启动(我们使⽤⽐较稳定的版本 nacos-server-1.x.x.tar.gz)
  2. 启动命令(单机版):
    1. linux/mac:sh startup.sh -m standalone
    2. windows:cmd startup.cmd
  3. 访问nacos管理界⾯:http://127.0.0.1:8848/nacos/#/login(默认端⼝8848,账号和密码 nacos/nacos
    在这里插入图片描述
  4. 父pom文件引入jar包
     <!--SCA -->
      <dependency>
          <groupId>com.alibaba.cloud</groupId>
          <artifactId>spring-cloud-alibaba-dependencies</artifactId>
          <version>2.1.0.RELEASE</version>
          <type>pom</type>
          <scope>import</scope>
      </dependency>
      <!--SCA -->
    
  5. 在服务客户端中引入nacos客户端依赖的jar包,Nacos服务可以发现服务客户端,类似Eureka服务端为了发现Eureka客户端的那种感觉
    <!--nacos service discovery client依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
    
  6. 启动服务后,在服务管理的服务列表里可以看到服务名,分组名称,集群数,实例数,健康实例数,触发保护阈值,操作
    在这里插入图片描述
  7. 修改yml配置文件:在原有的基础上添加如下的配置,配置nacos server地址,类似Eureka一样,将服务注册到哪里
    spring: 
      # nacos配置
       cloud: 
         nacos: 
           discovery: 
    ################ 配置nacos server地址
             server-addr: 127.0.0.1:8848
    
  8. 启动微服务,查看服务列表
    在这里插入图片描述
  9. 查看服务详情
    在这里插入图片描述
  10. 在nacos中有临时实例和持久化实例之分
    1. 临时实例:微服务场景(cloud+dubbo)将服务注册进nacos中的,都属于临时实例,如果一段时间没有心跳包续约的话,就会将服务进行剔除操作
    2. 持久化实例:对于持久化实例来说就算他不健康了,也不会把他剔除的,一般用在MySQL的主从集群中,涉及很多节点
  11. 保护阈值:可以设置为0-1之间的浮点数,它其实是⼀个⽐例值(当前服务健康实例数/当前服务总实例数)
    场景
    1. ⼀般流程下,nacos是服务注册中⼼,服务消费者要从nacos获取某⼀个服务的可⽤实例信息,对于服务实例有健康/不健康状态之分,nacos在返回给消费者实例信息的时候,会返回健康实例。这个时候在⼀些⾼并发、⼤流量场景下会存在⼀定的问题
    2. 如果服务A有100个实例,98个实例都不健康了,只有2个实例是健康的,如果nacos只返回这两个健康实例的信息的话,那么后续消费者的请求将全部被分配到这两个实例,流量洪峰到来,2个健康的实例也扛不住了,整个服务A 就扛不住,上游的微服务也会导致崩溃,,,产⽣雪崩效应。
  12. 保护阈值的意义在于:
    1. 当服务A健康实例数/总实例数 < 保护阈值 的时候,说明健康实例真的不多了,这个时候保护阈值会被触发(状态true)
    2. nacos将会把该服务所有的实例信息(健康的+不健康的)全部提供给消费者,消费者可能访问到不健康的实例,请求失败,但这样也⽐造成雪崩要好,牺牲了⼀些请求,保证了整个系统的⼀个可⽤。
  13. 注意:阿⾥内部在使⽤nacos的时候,也经常调整这个保护阈值参数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值