不会Nacos的配置中心?你怎么敢的呀!如何一步步实现Nacos作为服务的配置中心(全网最详系列)

Posted IT挖掘机y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不会Nacos的配置中心?你怎么敢的呀!如何一步步实现Nacos作为服务的配置中心(全网最详系列)相关的知识,希望对你有一定的参考价值。

首 先 容 我 说 一 句 题 外 话 , 再 卷 咱 就 不 能 愉 快 的 玩 耍 了 ! g o   {首先容我说一句题外话,再卷咱就不能愉快的玩耍了!go~} go 


1 、 前 置 准 备 {1、前置准备} 1

首先应该安装好nacos服务,我使用的是云服务器安装的nacos;
下载安装教程:https://blog.csdn.net/Kevinnsm/article/details/117387323?spm=1001.2014.3001.5501

nacos官网地址:https://nacos.io/en-us/docs/quick-start.html

springcloud alibaba-nacos地址:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_nacos_config

2 、 框 架 搭 建 {2、框架搭建} 2

Ⅰ、搭建父工程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.hao</groupId>
    <artifactId>cloudAlibaba-nacos</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>nacos-confing</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.6.RELEASE</version>
    </parent>
    <properties>
        <spring.cloud.alibaba.version>2021.1</spring.cloud.alibaba.version>
        <spring.cloud.alibaba.nacos.version>2.1.1.RELEASE</spring.cloud.alibaba.nacos.version>
        <spring.cloud.alibaba.nacos.config.version>2.1.1.RELEASE</spring.cloud.alibaba.nacos.config.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                <version>${spring.cloud.alibaba.nacos.config.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>${spring.cloud.alibaba.nacos.version}</version>
            </dependency>

        </dependencies>
    </dependencyManagement>
</project>

Ⅱ、创建一个子模块nacos-config

1、子模块pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>cloudAlibaba-nacos</artifactId>
        <groupId>com.hao</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>nacos-confing</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>

2、编写controller

@RestController
@RefreshScope
public class ConfigController {

    @Value("${config.info}")	//注入nacos服务中心我自定义的配置项(后面会详细说)
    private String configInfo;

    @GetMapping(value = "/config/info")
    public String getInfo() {
        return configInfo;
    }
}

bootstrap.yml和application.yml的区别是bootstrap早于application加载(加载时机不同)

3、bootstrap.yml

server:
  port: 8082

spring:
  application:
    name: nacos-config-client	#服务名
  cloud:
    nacos:
      discovery:
        server-addr: 你的ip:8848	#注册进nacos的服务地址
      config:
        server-addr: 你的ip:8848
        file-extension: yaml		#配置中心的配置文件类型(后面详解)

4、application.yml

spring:
  profiles:
    active: dev		#表示当前处于开发环境

3 、 配 置 中 心 设 置 {3、配置中心设置} 3

注意需要先启动nacos服务,如果有疑问请移步:https://blog.csdn.net/Kevinnsm/article/details/117387323?spm=1001.2014.3001.5501

访 问 h t t p : / / i p / 8848 / n a c o s / i n d e x . h t m l / {访问http://ip/8848/nacos/index.html/} 访http://ip/8848/nacos/index.html/
在这里插入图片描述
由于我在controller使用@Value注解获取配置中心的配置文件的config.info的值,所以配置中心的配置文件需要有这个配置项
在这里插入图片描述
那么如何在配置中心配置这个值呢?且听我细细道来
在这里插入图片描述
点击+号
在这里插入图片描述
最主要的是要找对这个Data ID,如何找呢?

匹配模式:${spring.application.name}- ${spring.profiles.active}. ${spring.cloud.nacos.config.file-extension}

这 就 要 从 b o o t s t r a p . y m l 和 a p p l i a t i o n . y m l 找 值 了 {这就要从bootstrap.yml和appliation.yml找值了} bootstrap.ymlappliation.yml

1 、 首 先 s p r i n g . a p p l i c a t i o n . n a m e 的 值 是 n a c o s − c o n f i g − c l i e n t {1、首先spring.application.name的值是nacos-config-client} 1spring.application.namenacosconfigclient
在这里插入图片描述
2 、 其 次 s p r i n g . p r o f i l e s . a c t i v e 的 值 是 d e v {2、其次spring.profiles.active的值是dev} 2spring.profiles.activedev
在这里插入图片描述
3 、 最 后 是 s p r i n g . c l o u d . n a c o s . c o n f i g . f i l e − e x t e n s i o n 的 值 是 y a m l {3、最后是spring.cloud.nacos.config.file-extension的值是yaml} 3spring.cloud.nacos.config.fileextensionyaml
在这里插入图片描述

所 以 最 后 拼 接 起 来 就 是 n a c o s − c o n f i g − c l i e n t − d e v . y a m l {所以最后拼接起来就是nacos-config-client-dev.yaml} nacosconfigclientdev.yaml

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

启动nacos-config服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

成功从nacos配置中心读取配置项了!
在这里插入图片描述

以上是关于不会Nacos的配置中心?你怎么敢的呀!如何一步步实现Nacos作为服务的配置中心(全网最详系列)的主要内容,如果未能解决你的问题,请参考以下文章

Java Spring Cloud 实战之如何使用Nacos和网关中心的创建?80%的人都不会

Java Spring Cloud 实战之如何使用Nacos和网关中心的创建?80%的人都不会

nacos微服务(一)

Nacos做配置中心经常被问到的问题

SpringCloud怎么使用Nacos做注册中心+配置中心?

你应该了解的Nacos配置中心