Nacos安装部署及与SpringCloud整合使用作为配置中心

一、Nacos安装部署

下载Nacos安装包:https://github.com/alibaba/nacos/releases。

解压后目录结构如下:

Nacos安装部署及与SpringCloud整合使用作为配置中心_第1张图片

启动脚本在bin目录下:

Nacos安装部署及与SpringCloud整合使用作为配置中心_第2张图片

1、单机安装

windows下:

startup.cmd -m standalone

Linux下:

startup.sh -m standalone

 

下面以windows安装为例演示:

Nacos安装部署及与SpringCloud整合使用作为配置中心_第3张图片

启动成功后,访问:http://127.0.0.1:8848/nacos/, 用户名/密码 默认:nacos/nacos

Nacos安装部署及与SpringCloud整合使用作为配置中心_第4张图片

 

2、集群安装

以windows安装为例

将解压后的文件夹再复制2份,共3份,使用本地测试,本地IP为192.168.0.105,使用不同端口来区分

Nacos安装部署及与SpringCloud整合使用作为配置中心_第5张图片

nacos-1: 192.168.0.105:8848

nacos-2: 192.168.0.105:8849

nacos-3: 192.168.0.105:8850

 

修改conf/cluster.conf(没有的话,新增一个)内容如下:

192.168.0.105:8848
192.168.0.105:8849
192.168.0.105:8850

nacos-1、nacos-2、nacos-3 都修改为以上内容;

新增mysql数据库:nacos,将conf/nacos-mysql.sql 脚本导入到nacos数据库中;

修改conf/application.properties配置文件(3个文件夹下server.port都相应调整下):

server.port=8848
spring.datasource.platform=mysql
db.num=1

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos

配置修改完成后,分别到nacos-1/bin, nacos-2/bin, nacos-3/bin 文件夹下,使用命令启动

startup.cmd -m cluster

集群启动成功后,可以在nacos后台查看:

Nacos安装部署及与SpringCloud整合使用作为配置中心_第6张图片

 

二、与SpringCloud整合

新建maven项目:springcloud-nacos

添加依赖:


        org.springframework.boot
        spring-boot-starter-parent
        2.1.3.RELEASE
    

    
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            0.9.0.RELEASE
        
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-config
            0.9.0.RELEASE
        
        
            org.springframework.boot
            spring-boot-starter-web
        
    

 

在bootstrap.yml(一定是bootstrap.yml文件,不是application.yml文件)文件配置以下内容:

spring:
  application:
    name: nacos
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        prefix: nacos
  profiles:
    active: dev

在上面的配置中,配置了nacos config server的地址,配置的扩展名是ymal(目前仅支持ymal和properties)。注意是没有配置server.port的,sever.port的属性在nacos中配置。上面的配置是和Nacos中的dataId 的格式是对应的,nacos的完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}

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

进入Nacos Console,新建一个Data ID。

Nacos安装部署及与SpringCloud整合使用作为配置中心_第7张图片

 

新建启动类如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class NacosApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosApplication.class, args);
    }
}

新建Controller,加上@RefreshScope注解

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope
public class ConfigController {

    @Value("${username}")
    private String username;

    @RequestMapping("username")
    public String getConfig() {
        return username;
    }
}

 

启动NacosApplication ,从控制台可以看出,tomcat端口号从nacos中读取8081。

Nacos安装部署及与SpringCloud整合使用作为配置中心_第8张图片

此时访问:http://127.0.0.1:8081/username,可以看到返回配置的内容:Jason,此时修改nacos中 username的值,会立即同步到应用中。

 

你可能感兴趣的:(SpringCloud,nacos,springcloud,注册中心,配置中心)