nacos踩坑记

本文介绍了Nacos2.3.1版本的配置管理特性,包括权重设置、命名空间的作用、配置文件的添加与热更新,以及如何实现多环境共享和配置集群。还提及了与Eureka的区别和数据库配置的步骤。
摘要由CSDN通过智能技术生成

首先:我的nacos版本是2.3.1,本说明的操作环境是windows11

nacos与eureka的区别

nacos的权重:

权重区间是0-1,0是权得最低,1是权重最高。权重越高,服务访问的次数越多,权重越低,服务的访问次数越少。如将权重调为0,则服务不会被调用到。

默认权重是1;

操作方法:在nacos的控制台中设置。

命名空间:namespace

用来隔离服务。不同环境的服务互相不可见,也就是如果想让服务可见,就要将服务放在同一个环境 中。

默认的命名空间是public。

临时实例与非临时实例

配置统一管理,

一、将配置文件交给nacos管理

在nacos的控制台的配置管理中添加。

添加的是会有变化的配置内容,不是yml文件中的全部内容。

data ID:配置方式:服务名称_开发环境.后缀,后缀一般是yaml。

使用:

         1、项目中加入nacos-config依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

        2、创建bootstrap.yml文件(名称不可错误), 内容如下

spring:
  application:
    name: userservice  #服务的名称
  profiles:
    active: dev  #服务的环境
  cloud:
    nacos:
      server-addr: localhost:8848  #nacos的地址
      config:
        namespace: ba8f1851-b52b-479a-89d2-b5500a90520e  #命名空间 ,在控制台设置,此处是dev环境的id
        file-extension: yaml  #文件后缀
        server-addr: ${spring.cloud.nacos.server-addr}

注:${spring.application.name}+"-"+${profiles.active}+"."+${cloud.nacos.config.file-extension}组成的字符串与控制台中的data Id要一致。如上图。

二、配置热更新

        1、在注入配置信息的类中,添加@RefreshScope注解,来属性刷新,nacos中的配置管理

        2、自定义configrationproperties文件

三、多环境共享配置

        1、如何实现多环境共享配置

                在控制台中定义一个不区分环境的配置文件。以上图为例:

                图中定义的是dev环境的配置文件,

                多环境的配置文件则可以配置成userservice.yaml,nacos会自动根据环境进行区分;

        2、多个环境有相同的配置元素的优先级:

                区分环境的配置文件 > 多环境配置文件 > 本地配置环境

NACOS的集群配置

1、首先创建一个数据库,并命名为nacos;建表的sql在nacos的conf目录中有,文件名是mysql-schema.sql

        

2、修改文件

        将conf目录下的cluster.conf.example修改为cluster.conf,也就是将example去掉。

        

        修改cluster.conf的内容:增加服务器的ip地址以及端口号

        如:127.0.0.1:8843

3、将nacos目录复制。想添加几个机器就复制几份,同时修改application.properties文件中的内容。共有以下几个地方要修改:

        1)、server.port  这是服务的端口号;

        2)、数据库配信息

                db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0= XXX  #数据库的用户名
db.password.0=XXX  #数据库的密码

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nacos-server-1.2.0.zip 包是从github上下载的官方源包 Nacos 1.2 坑记录 坑1: nacos-mysql.sql 文件中的 permissions 表, 创建的联合唯一键超长, sql文件里是512长度, 导致报 Specified key was too long; max key length is 767 bytes 解决方案1: 直接缩短到255长度 解决方案2: 修改数据库配置, set innodb_large_prefix=on 吐槽一下, 1.2.0版本比1.1.4版本多创建一个数据表, 为甚么前面的sql有引擎,有编码,有注释, 1.2.0新增的表没有这些? 发布之前不做sql的兼容? 强迫症患者表示很难受 坑2: windows版集群部署, 官方文档只交代了简单的配置, 集群模式启动命令中需要加上 -m, 这是在修改startup.cmd看到脚本发现的, 不加-m永远是单机模式... 单机模式: -m standalone 或不配置 -m 集群模式: -m 参数值不等于standalone皆可 压缩包提供了已经修改好的启动文件 startup.cmd, 并支持启动时可附带ip和端口的设置, 支持跨网段集群 下载学习的同学可以对照一下改动位置 linux环境对应修改startup.sh文件, 这个包本身是windows版, 所以我没做sh文件的改动 补充: 集群配置 1、修改 application.properties 末尾追加数据库配置, 用于集群环境下存储 Nacos 配置文件 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://ip:port/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=xxxx db.password=xxxxx 2、复制 cluster.conf.example 并重命名为 cluster.conf, 写入配置, 最少3个节点构成集群 192.168.1.2:8848 192.168.1.2:8849 192.168.1.2:8850 3、nginx反向代理配置, 因为我这里是单台机器 upstream nacos-server { server 127.0.0.1:8848; server 127.0.0.1:8849; server 127.0.0.1:8850; } server { listen 80; server_name localhost; location / { proxy_pass http://nacos-server; } } 4、启动集群, 写个脚本批量启动 startup_all.bat, 脚本代码如下 start startup.cmd -m -i 192.168.1.2 -p 8848 start startup.cmd -m -i 192.168.1.2 -p 8849 start startup.cmd -m -i 192.168.1.2 -p 8850 需要注意启动命令的 -i 和 -p 是我们自己加入的, 配置的ip和端口需要跟 cluster.conf 对应, 缺省127.0.0.1:8848 此时打开Nacos后台,能看到3个节点已构成集群模式: 节点Ip 节点状态 集群任期 Leader止时(ms) 心跳止时(ms) 192.168.1.2:8849 LEADER 1 16736 2500 192.168.1.2:8848 FOLLOWER 1 12510 2500 192.168.1.2:8850 FOLLOWER 1 16397 2500

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值