# Nacos 配置管理-应用于分布式系统(一)

#春日生活打卡季#


# Nacos 配置管理-应用于分布式系统(一)


## 一、Nacos 配置管理-应用于分布式系统-微服务创建

1.1 发布配置 ( nacos-1.1.3 )

首先在 nacos 发布配置,规划两个服务 service1, service2,

并且对这两个服务的配置进行集中维护。

启动 nacos 服务( /bin/startup.cmd )

浏览器访问:http://127.0.0.1:8848/nacos

1)打开控制台,先创建 3 个命名空间 namespace

命名空间 namespace

--> 新建命名空间 namespace

--> 命名空间名: dev

描述:开发环境

--> 确定。


命名空间 namespace

--> 新建命名空间 namespace

--> 命名空间名: pro

描述:生产环境

--> 确定。


命名空间 namespace

--> 新建命名空间 namespace

--> 命名空间名: test

描述:测试环境

--> 确定。




2)打开 nacos 控制台,并点击菜单 配置管理 --> 配置列表 --> dev :

添加如下配置: service1

namespace : dev

Data ID : service1.yaml

Group : TEST_GROUP

配置模式 :YAML

配置内容 :common:

name: service1 config--dev 开发环境


(注意:配置内容,遵循 yaml 文件格式,

: 后要有空格,缩进不能用 Tab键 缩进,两个空格缩进就行 )


namespace : pro #生产环境

Data ID : service2.yaml

Group : TEST_GROUP #测试组

配置模式 :YAML

配置内容 :common:

name: service2 config--pro 生产环境




1.2 打开 idea 创建一个父 Maven 工程 nacos_config 工程,和两个子模块( service1, service2 )。

--> idea

--> File

--> New Project

--> Maven

--> Groupld : ( djh.it )

Artifactld : ( nacos_config )

Version : 1.0-SNAPSHOT

--> Next

--> Project name: ( nacos_config )

Project location: ( C:java-testidea2019 acos_config )

--> Finish

(父工程不编写代码,可以删除 src 目录)

1.3 在 父工程的 pom.xml 配置文件中导入依赖

<?xml version="1.0" encoding="UTF-8"?>

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">

4.0.0

djh.it

nacos_config

1.0-SNAPSHOT

pom

UTF-8

UTF-8

1.8

com.alibaba.cloud

spring-cloud-alibaba-dependencies

2.1.0.RELEASE

pom

import

org.springframework.cloud

spring-cloud-dependencies

Greenwich.RELEASE

pom

import

org.springframework.boot

spring-boot-dependencies

2.1.3.RELEASE

pom

import

org.springframework.boot

spring-boot-maven-plugin


1.4 新增 service1, service2 子工程(子模块),

创建两个子模块:

--> 右键 nacos_config 父工程

--> Modules

--> Maven

--> Groupld : ( djh.it )

Artifactld : ( service1 )

Version : 1.0-SNAPSHOT

--> Next

--> Module name: ( service1 )

Content root : ( C:java-testidea2019 acos_configservice1 )

Module file location: ( C:java-testidea2019 acos_configservice1 )

--> Finish


--> 右键 nacos_config 父工程

--> Modules

--> Maven

--> Groupld : ( djh.it )

Artifactld : ( service1 )

Version : 1.0-SNAPSHOT

--> Next

--> Module name: ( service1 )

Content root : ( C:java-testidea2019 acos_configservice2 )

Module file location: ( C:java-testidea2019 acos_configservice2 )

--> Finish


1.5 在子工程 service1, service2 的 pom.xml 文件中加入依赖:

```

<?xml version="1.0" encoding="UTF-8"?>

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">

nacos_config

djh.it

1.0-SNAPSHOT

4.0.0

service1

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

org.springframework.boot

spring-boot-starter-web

```


```

<?xml version="1.0" encoding="UTF-8"?>

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">

nacos_config

djh.it

1.0-SNAPSHOT

4.0.0

service2

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

org.springframework.boot

spring-boot-starter-web

```

1.6 创建 service1, service2 子工程的配置文件 bootstrap.yml

```

## C:java-testidea2019 acos_configservice1srcmainresourcesbootstrap.yml

server:

port: 56010 #启动端口 命令行注入

spring:

application:

name: service1

cloud:

nacos:

config:

server-addr: 127.0.0.1:8848 #配置中心地址

file-extension: yaml #dataid 的名称是 application 的 name 加 file-extension 名称 :service1.yaml

namespace: eae273b2-9298-4b99-b4aa-a3d5ea5df089 #开发环境

group: TEST_GROUP #测试组


```


```

## C:java-testidea2019 acos_configservice2srcmainresourcesbootstrap.yml

server:

port: 56020 #启动端口 命令行注入

spring:

application:

name: service2

cloud:

nacos:

config:

server-addr: 127.0.0.1:8848 #配置中心地址

file-extension: yaml #dataid 的名称是 application 的 name 加 file-extension 名称 :service2.yaml

namespace:2ee539a7-ad76-4213-a90f-30fa1cc57c70 # pro 生产环境 ( nacos-1.1.3 )

group: TEST_GROUP #测试组


```


1.7 创建 springboot 启动类 Service1BootStrap.java, Service2BootStrap.java

```

/**

* C:java-testidea2019 acos_configservice1srcmainjavadjhit acosservice1Service1BootStrap.java

*

* 2024-3-21 springboot 启动类 *

*/

package djh.it.nacos.service1;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication

@RestController

public class Service1BootStrap {

public static void main(String[] args) {

SpringApplication.run(Service1BootStrap.class, args);

}

//通过 @Value 注解读取配置信息

@Value("${common.name}")

private String config1;

@GetMapping("/configs")

public String getConfigs(){

//读取配置信息

return config1;

}

//访问地址:浏览器地址栏输入:http://localhost:56010/configs // 输出:service1 config--dev 开发环境

}

```

```


/**

* C:java-testidea2019 acos_configservice2srcmainjavadjhit acosservice2Service2BootStrap.java

*

* 2024-3-21 springboot 启动类 *

*/

package djh.it.nacos.service2;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication

@RestController

public class Service2BootStrap {

public static void main(String[] args) {

SpringApplication.run(Service2BootStrap.class, args);

}

//通过 @Value 注解读取配置信息

@Value("${common.name}")

private String config2;

@GetMapping("/configs")

public String getConfigs(){

//读取配置信息

return config2;

}

//访问地址:浏览器地址栏输入:http://localhost:56020/configs // 输出:service2 config--pro 生产环境

}

```

1.8 分别启动两个测试类的运行 main() 方法,

浏览器地址栏输入:http://localhost:56010/configs

输出:service1 config--dev 开发环境

浏览器地址栏输入:http://localhost:56020/configs

输出:service2 config--pro 生产环境



展开阅读全文

页面更新:2024-04-22

标签:分布式   地址栏   模块   浏览器   名称   地址   环境   测试   工程   系统   信息   空间

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top