Nacos

image-20221208152149850

Nacos

安装&启动

image-20221208155247160image-20221208155337667

Nacos作为注册中心

从Eureka切换到Nacos

Maven父工程加入alibaba的Nacos管理依赖

<!--            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的Maven依赖

<!--        eureka-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.cloud</groupId>-->
<!--            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>-->
<!--        </dependency>-->
<!--        nacos-->
        <!-- nacos客户端依赖包 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

在application.yml中修改Spring下的配置

spring:
  cloud:
    nacos:
      server-addr: localhost:9998

Nacos 控制台信息image-20221208161800303

服务分级存储模型

  1. 服务
  2. 集群
  3. 实例

spring.cloud.nacos.discovery.cluster-name: <集群名称>

image-20221209230014657

配置命名空间

  • namespace用来做环境隔离

  • 每个namespace都有唯一的ID

  • 不同的namespace下的服务不可见

spring.cloud.nacos.discovery.namespace: <nacos服务前台创建的命名空间的ID>

image-20221209230024457

临时实例和非临时实例的区别

临时实例

非临时实例

image-20221209225813327

控制台显示为非临时实例

image-20221209230111873

对于非临时实例当服务停掉时,并不会从列表中删除,只会显示当前的健康状态为不健康

Nacos配置管理

导入Maven坐标

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

添加bootstrap.yml文件

image-20221209234017069

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 环境名
  cloud:
    nacos:
      server-addr: localhost:9998 # nacos地址
      config:
        file-extension: yaml  # 配置文件后缀名

image-20221209234912673image-20221209234936228

Nacos配置热更新

  1. value注解所在的类上添加@RefreshScope

image-20221209235420594

  1. 使用@ConfigurationProperties注解
package cn.itcast.user.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author Pickle
 * @version V1.0
 * @date 2022/12/10 0:00
 */
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
}

通过@Autowired注解获得配置参数

image-20221210000318530

多环境配置共享

image-20221210200238809

优先级:

[服务器名]-[环境].yaml>[服务器名].yaml>本地配置

posted @ 2022-12-10 21:25  破忒头头  阅读(327)  评论(0)    收藏  举报