Nacos详细使用流程

1.Nacos入门
  • 到官网下载Nacos

  • 在下载好的Nacos文件夹下的conf文件夹里找到application.properties文件,打开文件配置对应的端口号server.port=8848

  • 在下载好的Nacos文件夹下的bin文件夹中使用终端打开执行命令startup.cmd -m standlone进行启动,如果是PowerShell终端,就输入.\startup.cmd -m standalone进行启动,默认用户名和密码都是nacos

  • 打开对应的微服务项目,在父工程中添加spring-cloud-alibaba的管理依赖

  •     <!--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>
    
  • 在子工程中添加nacos的客户端依赖

  •     <!--nacos客户端依赖包-->
           <dependency>
               <groupId>com.alibaba.cloud</groupId>
               <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
           </dependency>
    
  • 在子工程中的appication.yml文件中配置信息

  • spring:
      cloud:
        nacos:
          server-addr: localhost:8848 # nacos服务地址
    
2.服务多级存储模型
  • 服务尽可能选择本地集群的服务,跨集群调用延迟较高,本地集群不访问时再去访问其他集群

  • spring:
    	cloud:
            nacos:
              server-addr: localhost:8848 # nacos服务地址
              discovery:
                cluster-name: SH #集群名称
    
  • 配置完成后点击服务详情

  • 在这里插入图片描述

  • 在这里插入图片描述

3.负载均衡
  • 默认是轮询的负载均衡规则

  • 修改application.yml文件,修改负载均衡的规则,优先选择本集群,再进行随机选择

  • userservice:
      ribbon:
        NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
    
4.服务实例的权重设计
  • Nacos控制台可以设置实例的权重值,0-1之间
  • 同集群内的多个实例,权重越高被访问的频率越高
  • 权重设置为0则完全不会被访问
  • 当我们想对应用进行版本升级的时候,可以将一个实例的权重设置为0,然后进行升级,先给予0.001(较小的权重)用于测试升级版本的稳定性,再逐渐放大权重占比
5.环境隔离
  • namespace用来做环境隔离
  • 每个namespace都有唯一id
  • 不同namespace下的服务不可见

实现流程

  • 新建命名空间

  • 在这里插入图片描述

  • 在对应的application.yml文件中添加namespace

  • cloud:
      nacos:
        server-addr: localhost:8848 # nacos服务地址
        discovery:
          cluster-name: HZ
          namespace: 
    
6.nacos注册中心原理
  • 服务提供者分为临时实例和非临时实例

  • 临时实例采用心跳监测,检测不到,直接去除掉

  • 非临时实例主动发请求,若服务提供者挂掉了,会视为不健康状态,会等待修复

  • nacos主动推送变更信息push,检测消费者

配置临时实例和非临时实例流程

  • 在application.yml文件中添加ephemeral配置
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址
      discovery:
        cluster-name: HZ
        namespace: 4a6fe0e3-8a0f-40a9-b55d-a59e0914d2af
        ephemeral: false # 是否是非实例
7.Nacos配置管理
7.1添加配置
  • 打开Nacos

  • 在这里插入图片描述

  • 右边加号进行添加配置

  • 新建配置注意事项

    1. Data ID不能唯一,一般命名规则为 服务器实例名称+开发环境+后缀
    2. 配置格式,目前支持YAML和Properties,通常选择TAML,这个我们经常叫yml,但在第一条注意事项中后缀要写yaml
    3. 配置内容只需要写类似于开关的配置信息,例如:是否为临时实例等,像数据库的连接这些就没必要进行添加
  • 在这里插入图片描述在这里插入图片描述

7.2配置拉取
  • 获取的步骤

  • 在这里插入图片描述

  • 引入Nacos的配置管理客户端依赖

  • <!--nacos的配置管理依赖-->
           <dependency>
               <groupId>com.alibaba.cloud</groupId>
               <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
           </dependency>
    
  • 建立bootstrap.yml文件

  • spring:
      application:
        name: userservice
      profiles:
        active: dev #环境
      cloud:
        nacos:
          server-addr: localhost:8848 # nacos地址
          config:
            file-extension: yaml # 文件后缀名
    
  • 删除application.yml和bootstrap.yml相同的配置

  • 测试

  • 在Controller中添加代码获取配置

  •     @Value("${pattern.dateformat}")
        private String dateformat;
    
        @GetMapping("now")
        public String now() {
            return LocalDateTime.now().format(
                    DateTimeFormatter.ofPattern(dateformat, Locale.CHINA)
            );
        }
    
  • 启动后访问对应的地址

  • 在这里插入图片描述

  • 于我们在Nacos中添加的配置对应–成功

  • pattern:
        dateformat: yyyy-MM-dd HH:mm:ss
    
8.实现热更新

Nacos中的配置文件变更后,微服务无需重启就可以感知

  • 方式一

  • 在@Value注入的变量所在类上添加注解@RefreshScope

  • 当我们修改配置的时候,查看控制会出现,检测到配置修改的日志

  • 09-24 11:30:57:696  INFO 8564 --- [-localhost_8848] c.a.n.client.config.impl.ClientWorker    : [fixed-localhost_8848] [data-received] dataId=userservice-dev.yaml, group=DEFAULT_GROUP, tenant=null, md5=c6e896e251552a493dbf917a13552d76, content=pattern:
        dateformat: yyyy年MM月dd日 HH:mm:ss, type=yaml
    
  • 方式二

  • 新建立配置文件Config.PatternProperties并添加配置

  • package cn.itcast.user.config;
    
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    @Data
    @Component
    @ConfigurationProperties(prefix = "pattern")    
    public class PatternProperties {
        
    	// 你定义prefix的值加上你设置的变量的值和Nacos中一样即可
       
        private String dateformat;
        
    }
    
  • 在Controller添加配置

  •     // 注入
        @Autowired
        private PatternProperties properties;
        
           @GetMapping("now")
        public String now() {
            return LocalDateTime.now().format(
                    DateTimeFormatter.ofPattern(properties.getDateformat(), Locale.CHINA)
            );
        }
    
  • 更推荐使用第二种方式

9.多环境配置共享

试想一个问题:如果当我们想添加一个配置,所有配置文件中相同的,难道我们要都写一份吗?当我们想修改一个配置的时候,我们难道要将所有的配置文件都修改一遍吗?

答案当然是不用

我们可以配置环境共享文件

  • 在Nacos中添加配置文件

  • 在这里插入图片描述

  • 在Config.PatternProperties中添加private String envShardValue;

  • 在Controller中新添加接口

  •     @Autowired
        private PatternProperties properties;
    
        @GetMapping("prop")
        private PatternProperties properties() {
            return properties;
        }
    
  • 测试成功,拿到了共享配置中的配置

  • 在这里插入图片描述

  • 配置文件的优先级:服务名-profile.yaml > 服务名称.yaml > 本地配置

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Nacos是阿里巴巴开源的一款服务发现和配置管理中心,它支持自动化管理和动态配置服务的发现、服务健康监测、动态配置、服务及其元数据管理。下面是Nacos详细搭建流程。 1. 安装Java环境 Nacos需要Java环境来运行,因此首先需要安装Java。可以从Oracle官网下载Java SE Development Kit (JDK),然后按照安装向导进行安装。 2. 下载Nacos 可以从官网下载Nacos的最新版本,也可以从Github上下载源代码并自己编译。本文以下载最新版本为例。 3. 解压Nacos 将下载的Nacos压缩包解压到指定的目录下。例如,将Nacos解压到/opt/nacos目录下。 4. 配置数据库 Nacos需要使用数据库来存储数据,可以选择MySQL或者Derby。本文以MySQL为例。 首先需要在MySQL中创建一个数据库,例如nacos_db。然后创建一个用户,并授予该用户访问nacos_db数据库的权限。例如,创建一个用户名为nacos,密码为nacos123的用户,并授予该用户访问nacos_db数据库的全部权限。 5. 配置Nacos 在解压后的Nacos目录下,找到conf目录,修改application.properties文件。将以下参数修改为相应的值: ``` # 数据库类型,目前支持mysql和derby spring.datasource.platform=mysql # 数据库连接信息 db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_db?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos db.password=nacos123 # server配置 server.port=8848 server.contextPath=/nacos # 集群配置 cluster.enabled=false ``` 6. 启动Nacos 在解压后的Nacos目录下,运行bin目录下的startup.sh (Linux/Mac) 或 startup.cmd (Windows)来启动Nacos启动后,可以通过访问http://localhost:8848/nacos来访问Nacos的Web界面。 7. 使用NacosNacos的Web界面中,可以进行服务的注册、发现、配置等操作。 例如,可以通过在Web界面中注册一个服务,然后在其他应用中通过Nacos的API来发现该服务。也可以在Nacos中进行配置管理,例如将一些常量的值存储在Nacos配置中心中,然后在应用中通过Nacos的API来获取这些配置的值。 以上就是Nacos详细搭建流程

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栖迟于一丘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值