SpringCloud集成nacos作为配置中心

什么是nacos

Nacos致力于帮助您发现,配置和管理您的微服务。它提供了一组简单有用的功能,使您能够实现动态服务发现,服务配置,服务元数据和流量管理
Nacos使构建,交付和管理您的微服务平台变得更容易,更快捷。它是通过微服务或云原生方法支持以服务为中心的现代应用程序体系结构的基础架构。

springcloud集成nacos配置中心

预备环境准备

64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+;下载 & 配置。
Maven 3.2.x+;下载 & 配置。

下载源码或者安装包

git clone https://github.com/alibaba/nacos.git
cd nacos/

启动nacos服务端

执行nacos数据库脚本

打开下载的nacos代码,打开nacos/distribution/conf/文件夹下的nacos-mysql.sql文件,执行sql脚本,创建nacos数据库。
在这里插入图片描述
在这里插入图片描述

nacos服务端启动

修改nacos\console\src\main\resources\application.properties文件,放开如下配置文件的注释,修改数据库连接以及db.num=1
在这里插入图片描述
打包项目

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin

linux启动命令(standalone代表着单机模式运行,非集群模式):

startup.sh -m standalone

windows启动命令:

startup.cmd

或者双击startup.cmd运行文件。

访问nacos管理页面

浏览器访问 http://localhost:8848/nacos
用户名/密码 nacos/nacos
nacos服务端管理页面

nacos管理页面添加客户端配置信息

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

nacos客户端代码编写

添加依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。
链接: 版本说明.

修改配置文件

在 bootstrap.properties 中配置 Nacos server 的地址和应用名

# 一定要将配置放在bootstrap.properties内,否则无法获取配置
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# nacos DataId为${prefix}-${spring.profile.active}.${file-extension}
# prefix默认为spring.application.name
spring.application.name=sys-service-server
# spring.profiles.active=dev

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}
  1. prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  2. spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}
  3. file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

@RefreshScope 实现配置自动更新:

@RefreshScope可以使nacos客户端运行过程中可以获取到配置中心配置的变化然后更新。

package io.yjff.controller.sys;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * description: SysController
 * date: 2020/6/18 14:23
 * author: 刘远杰
 * version: 1.0
 */
@Api("系统管理")
@RestController
@RefreshScope
public class SysController {

    @Value("${user.id}")
    private String id;

    @Value("${user.name}")
    private String name;
    
    @Value("${user.age}")
    private Integer age;

     @GetMapping("/get")
    public String get() {
        return id + " " + name + " " + age;
    }

}

启动nacos客户端

项目启动后,会将nacos上的配置信息缓存到本地C:\Users***\nacos\data\config-data\DEFAULT_GROUP文件夹下,nacos服务宕机或从本地缓存中寻找配置信息。

根据环境加载不同nacos配置

nacos配置中心为不同的环境编写专门的配置文件,DATAID:${prefix}-${spring.profile.active}.${file-extension}, 启动项目时只需要增加一个命令参数 --spring.profiles.active=${spring.profile.active} 即可。
示例:
如果项目由dev/test两个环境的配置,在nacos配置中心添加如下两个dev/test环境配置文件:
在这里插入图片描述
启动项目设置环境参数

// 加载cloud-admin-api-dev.properties配置
java -jar cloud-admin-api-1.0.0-SNAPSHOT.jar --spring.profiles.active=dev
// 加载cloud-admin-api-test.properties配置
java -jar cloud-admin-api-1.0.0-SNAPSHOT.jar --spring.profiles.active=test

启动日志如下,根据启动参数加载了对应环境的配置信息。
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值