Nacos 基本操作

2023年 10月 5日 212.3k 0

概念

Nacos是阿里巴巴的产品,现在是springcloud的一个组件,相比于Eureka更加丰富。

启动 (单机启动)

进入nacosbin目录,cmd进入控制台,输入startup.cmd -m standalone

image.png

浏览器输入地址:http://192.168.0.101:8848/nacos/index.html#/login

默认账号密码均为:nacos

image.png

springboot中添加nacos

添加依赖

父工程的pom.xml添加依赖:



    com.alibaba.cloud
    spring-cloud-alibaba-dependencies
    2.2.5.RELEASE
    pom
    import

image.png

子工程客户端添加依赖:


    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery

image.png

修改子工程中的application.yml文件

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

image.png

启动测试

image.png

分级存储模型

  • 一级是服务,例如userservice
  • 二级是集群,例如地点上海或者杭州
  • 三级是机房,例如杭州的机房部署了userservice服务器
  • 对于同一集群的服务器,消费者会优先调用同一集群的生产者服务器,若同一集群的生产者服务器宕机,则调用其他集群的服务器。

    如何修改

    在application.xml文件,添加spring.cloud.nacos.discovery.cluster-name属性

    image.png

    image.png

    查看

    image.png

    image.png

    负载均衡

    设置

    修改消费者的apllication.yml,设置Rule

    (生产者为userservice,消费者为orderservice)

    userservice:
      ribbon:
        NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
    

    NacosRule 策略:

  • 优先选择同一集群的服务者实例
  • 本地集群找不到,才回去其他集群查找
  • 确定好服务者实例后,采用随机选择
  • image.png

    相关策略:

    image.png

    权重控制

    若权重设为0,理论上消费者不会调用该生产者,那么即使是在白天,也可以进行服务器的升级

    image.png

    环境隔离

    image.png

    复制命名空间id:24a1cb4c-91be-4177-a914-1fbdd4f898c1

    image.png

    application.yml 中添加 namespace: 24a1cb4c-91be-4177-a914-1fbdd4f898c1

    image.png

    image.png

    热部署

    nacoss上新建配置

    image.png

    文本框内容按照自己需求编写

    image.png

    客户端导入依赖

    
        com.alibaba.cloud 
        spring-cloud-starter-alibaba-nacos-config
    
    

    从application.yml中抽取需要单独修改的配置,bootstrap的优先级高于application

    image.png

    法一:添加注解

    @RefreshScope + @Value("${pattern.deteformat}")

    image.png

    法二:方法中注入

    image.png

    image.png

    多环境配置共享

    优先级:服务名-profile.yaml > 服务名.yaml > 本地配置

    如: userservice-dev.yaml > userservice.yaml > application.yaml

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论