侧边栏壁纸
  • 累计撰写 4 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Spring Cloud Alibaba - Nacos

cck1718
2024-04-11 / 0 评论 / 2 点赞 / 45 阅读 / 4708 字

环境搭建 (docker)

拉取nacos镜像

docker pull nacos/nacos-server

创建nacos挂载文件

mkdir /data/nacos/conf
mkdir /data/nacos/data
mkdir /data/nacos/logs

启动nacos

启动一次nacos获取配置文件

docker run -d -p 8848:8848 --name nacos nacos/nacos-server

将nacos配置文件复制到指定数据卷(可选择手动创建配置文件)

docker cp nacos:/home/nacos/conf/ /data/nacos/
docker cp nacos:/home/nacos/logs/ /data/nacos/
docker cp nacos:/home/nacos/data/ /data/nacos/

删除nacos容器

docker rm -f nacos

生成nacos有效密钥(32位)

openssl rand -hex 32

将生成的密钥进行base64转码(https://www.toolhelper.cn/EncodeDecode/Base64

导入nacos数据库

nacos默认端口为8848,需要将9848和9849也映射到宿主机,原理为程序端口加上偏移量1000和1001;

如果需要开启鉴权则需要配置

  • NACOS_AUTH_ENABLE:默认false,设置为true开启鉴权

  • NACOS_AUTH_IDENTITY_KEY :默认登录账号,nacos

  • NACOS_AUTH_IDENTITY_VALUE :默认登录密码,nacos

  • NACOS_AUTH_TOKEN:实现生成的nacos密钥(base64转码)

再次启动nacos容器


docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 -v /data/nacos/logs/:/home/nacos/logs -v /data/nacos/data/:/home/nacos/data -v /data/nacos/conf/:/home/nacos/conf --restart=always -e MODE=standalone -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=root -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_HOST=mysql -e MYSQL_SERVICE_PORT=3306 -e SPRING_DATASOURCE_PLATFORM=mysql -e NACOS_AUTH_ENABLE=true -e NACOS_AUTH_IDENTITY_KEY=nacos -e NACOS_AUTH_IDENTITY_VALUE=nacos -e NACOS_AUTH_TOKEN=Y2QXNSKDWjYzZGVmMjZsdixjKzM5N2QwMjY4MmNmMGUxNGU1ODY0mISHJDUyMzY0ZmI4NjdjNzQ3MzY2MTllNQ== --network power-network  --privileged=true -e JVM_XMS=128m -e JVM_XMX=128m -e JVM_XMN=64m  nacos/nacos-server

服务注册

依赖管理

  • nacos discovery 用于注册服务

<!--nacos服务注册-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

服务配置

spring:
  application:
    name: power-server                       # 程序名称,绑定在nacos中的服务名
  cloud:
    nacos:
      discovery:
        namespace: power                      # nacos配置命名空间
        server-addr: 117.72.66.229:8848       # nacos地址
        username: nacos                       # nacos账号
        password: nacos                       # nacos密码

配置中心

依赖管理

  • 使用application配置,会在程序加载完后再读取,导致远程配置无效,使用bootstrap会在程序前读取配置内容

  • nacos-config 配置中心

<!--bootstrap-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!--nacos配置管理-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

服务配置

spring:
  cloud:
    nacos:
      config:
        server-addr: 117.72.66.229:8848          # nacos地址
        username: power                          # nacos账号
        password: power                          # nacos密码
        file-extension: yaml                     # 配置文件后缀
        shared-configs:                          # 共享文件配置
          - data-id: power-config.yaml           # nacos中配置文件的id,一定要加后缀,不然读取不到
          - data-id: power-redis.yaml
        namespace: power                         # 配置文件空间
  profiles:
    active: dev                                  # 配置文件读取

2

评论区