Docker安装Nacos及动态配置

1.安装Nacos

1.拉取镜像
docker pull nacos/nacos-server

image-20240531150918430

2.启动Nacos
  • –env MODE=standalone:设置 Nacos 的运行模式为单机模式(standalone)
  • -w /home/nacos:设置容器的工作目录为 /home/nacos
docker run -d \
  --name nacos \
  --privileged  \
  --cgroupns host \
  --env MODE=standalone \
  -p 8848:8848/tcp \
  -p 9848:9848/tcp \
  --restart=always \
  -w /home/nacos \
  nacos/nacos-server

image-20240531151349456

3.开启8848和9848端口
1.8848
systemctl start firewalld && firewall-cmd --permanent --add-port=8848/tcp && firewall-cmd --reload && firewall-cmd --query-port=8848/tcp
2.9848
systemctl start firewalld && firewall-cmd --permanent --add-port=9848/tcp && firewall-cmd --reload && firewall-cmd --query-port=9848/tcp
4.访问nacos
1.网址 http://guest:8848/nacos/

image-20240531151819945

2.Nacos动态配置(无法实现bean动态加载)

1.新建一个配置,使其成为动态的

image-20240531152552108

image-20240531152708437

2.引入Nacos依赖
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.11</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
            <version>2.4.2</version>
        </dependency>

3.application.yml配置Nacos
nacos:
  config:
    secret-key: nacos
    access-key: nacos
    data-id: sun-club-oss
    group: DEFAULT_GROUP
    type: yaml
    server-addr: http://guest:8848
    auto-refresh: true
    remote-first: true # 是否优先从远程加载配置
    bootstrap:
      enable: true # 在应用启动时首先从Nacos加载配置
4.测试读取Nacos的配置
1.FileController.java
    @NacosValue(value = "${storage.service.type}", autoRefreshed = true)
    private String storageType;

    @RequestMapping("/testNacos")
    public String testNacos() throws Exception {
        return storageType;
    }

image-20240531154026735

2.访问测试

image-20240531154046091

image-20240531154117739

image-20240531154127601

3.Nacos动态配置(实现bean动态加载)

1.SpringBoot依赖版本调整为2.3.8

image-20240531155017562

2.引入Nacos的Cloud版本(替换掉之前的)
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.6.RELEASE</version>
</dependency>
3.删除原来的application.yml的nacos配置
4.新建一个bootstrap.yml配置nacos
spring:
  application:
    name: sub-club-oss # 服务名称
  profiles:
    active: dev # 激活的环境
  cloud:
    nacos:
      config:
        server-addr: guest:8848 # Nacos地址
        prefix: ${spring.application.name} # 配置前缀为服务名,sub-club-oss-dev为配置文件名
        group: DEFAULT_GROUP # 配置分组
        namespace: # 命名空间,如果在public命名空间则不需要配置
        file-extension: yaml

5.新建一个Nacos的配置文件
DataID命名格式为 prefix + “-” + active + “.yaml” 也就是 sub-club-oss-dev.yaml(注意必须加后缀.yaml!!!)

image-20240531164853418

6.添加@RefreshScope注解支持nacos动态刷新
1.简要介绍

在类上添加注解会让属性动态刷新,在方法上添加注解会让方法内用到的属性跟着动态刷新!

2.修改 StorageConfig.java,添加注解

image-20240531161219039

3.测试

image-20240531164918489

image-20240531164943340

image-20240531165000536

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Docker安装Nacos集群并配置Zookeeper,可以按照以下步骤进行操作: 1. 首先,确保已经安装DockerDocker Compose。 2. 创建一个名为`docker-compose.yml`的文件,并在其中添加以下内容: ```yaml version: '3' services: nacos-server-1: image: nacos/nacos-server:latest container_name: nacos-server-1 ports: - "8848:8848" environment: - PREFER_HOST_MODE=hostname - MODE=standalone - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=mysql - MYSQL_SERVICE_PORT=3306 - MYSQL_SERVICE_DB_NAME=nacos_config - MYSQL_SERVICE_USER=root - MYSQL_SERVICE_PASSWORD=root depends_on: - mysql nacos-server-2: image: nacos/nacos-server:latest container_name: nacos-server-2 ports: - "8849:8848" environment: - PREFER_HOST_MODE=hostname - MODE=standalone - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=mysql - MYSQL_SERVICE_PORT=3306 - MYSQL_SERVICE_DB_NAME=nacos_config - MYSQL_SERVICE_USER=root - MYSQL_SERVICE_PASSWORD=root depends_on: - mysql mysql: image: mysql:5.7 container_name: mysql ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=nacos_config zookeeper: image: zookeeper:3.4.14 container_name: zookeeper ports: - "2181:2181" ``` 3. 保存文件并在终端中进入该文件所在的目录。 4. 运行以下命令启动Nacos集群和Zookeeper: ```bash docker-compose up -d ``` 5. 等待一段时间,直到所有容器都成功启动。 现在,你已经成功在Docker安装Nacos集群,并配置了Zookeeper。你可以通过访问`http://localhost:8848/nacos`来访问Nacos控制台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

S-X-S

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

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

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

打赏作者

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

抵扣说明:

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

余额充值