Naocs安裝部署及與SpringCloud整合使用作爲配置中心

一、Nacos安裝部署

下載Nacos安裝包:https://github.com/alibaba/nacos/releases

解壓後目錄結構如下:

啓動腳本在bin目錄下:

1、單機安裝

windows下:

startup.cmd -m standalone

Linux下:

startup.sh -m standalone

 

下面以windows安裝爲例演示:

啓動成功後,訪問:http://127.0.0.1:8848/nacos/, 用戶名/密碼 默認:nacos/nacos

 

2、集羣安裝

以windows安裝爲例

將解壓後的文件夾再複製2份,共3份,使用本地測試,本地IP爲192.168.0.105,使用不同端口來區分

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後臺查看:

 

二、與SpringCloud整合

新建maven項目:springcloud-nacos

添加依賴:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>

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

 

在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。

 

新建啓動類如下:

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。

此時訪問:http://127.0.0.1:8081/username,可以看到返回配置的內容:Jason,此時修改nacos中 username的值,會立即同步到應用中。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章