Nacos 基本操作

概念

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

启动 (单机启动)

进入nacos\bin目录,cmd进入控制台,输入startup.cmd -m standalone

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

默认账号密码均为:nacos

springboot中添加nacos

添加依赖

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

xml 复制代码
<!-- 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>

子工程客户端添加依赖:

xml 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

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

yaml 复制代码
spring:
    cloud:
      nacos:
        discovery:
          server-addr: localhost:8848

启动测试

分级存储模型

  1. 一级是服务,例如userservice
  2. 二级是集群,例如地点上海或者杭州
  3. 三级是机房,例如杭州的机房部署了userservice服务器

对于同一集群的服务器,消费者会优先调用同一集群的生产者服务器,若同一集群的生产者服务器宕机,则调用其他集群的服务器。

如何修改

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

查看

负载均衡

设置

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

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

yaml 复制代码
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

NacosRule 策略:

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

相关策略:

权重控制

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

环境隔离

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

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

热部署

nacoss上新建配置

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

客户端导入依赖

xml 复制代码
<dependency>
    <groupId>com.alibaba.cloud </groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

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

法一:添加注解

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

法二:方法中注入

多环境配置共享

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

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

相关推荐
武子康10 分钟前
大数据-145 Apache Kudu 架构与实战:RowSet、分区与 Raft 全面解析
大数据·后端·nosql
间彧11 分钟前
Spring @ControllerAdvice详解与应用实战
后端
间彧15 分钟前
@ControllerAdvice与AOP切面编程在处理异常时有什么区别和各自的优势?
后端
间彧39 分钟前
什么是Region多副本容灾
后端
爱敲代码的北40 分钟前
WPF容器控件布局与应用学习笔记
后端
爱敲代码的北40 分钟前
XAML语法与静态资源应用
后端
清空mega42 分钟前
从零开始搭建 flask 博客实验(5)
后端·python·flask
爱敲代码的北1 小时前
UniformGrid 均匀网格布局学习笔记
后端
一只叫煤球的猫1 小时前
从1996到2025——细说Java锁的30年进化史
java·后端·性能优化
喵个咪1 小时前
开箱即用的GO后台管理系统 Kratos Admin - 数据脱敏和隐私保护
后端·go·protobuf