欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot整合nacos的入門Demo及Nacos安裝部署

 更新時(shí)間:2024年01月29日 09:40:59   作者:虛無境  
Nacos?提供了一組簡單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理,Nacos?致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù),這篇文章主要介紹了springboot整合nacos的入門Demo,需要的朋友可以參考下

Nacos介紹

Nacos /nɑ:k??s/ 是 Dynamic Naming and Configuration Service的首字母簡稱,一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái)。

Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos 提供了一組簡單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。

Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。 Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施。

官方文檔

https://nacos.io/zh-cn/docs/what-is-nacos.html

Nacos安裝部署

環(huán)境依賴:

  • JDK1.8+

下載地址官網(wǎng)地址:
https://github.com/alibaba/nacos/releases百度網(wǎng)盤地址:

鏈接: https://pan.baidu.com/s/1Qr8Y1K92PLs1x54BR1X27A  提取碼: webx

Nacos的安裝部署非常簡單,如果只是作為測試學(xué)習(xí),那么只需要將下載下來的Nacos進(jìn)行解壓,然后到bin目錄,根據(jù)當(dāng)前系統(tǒng)運(yùn)行對應(yīng)的startup.cmd即可。

注:如果nacos的版本在2.2.0+以上的版本時(shí),必須執(zhí)行此變更,否則無法啟動(dòng)。
修改conf目錄下的application.properties文件。
設(shè)置其中的nacos.core.auth.plugin.nacos.token.secret.key值,詳情可查看鑒權(quán)-自定義密鑰.

Nacos支持三種部署模式

  • 單機(jī)模式 - 用于測試和單機(jī)試用。

  • 集群模式 - 用于生產(chǎn)環(huán)境,確保高可用。

  • 多集群模式 - 用于多數(shù)據(jù)中心場景。

將下載下來的nacos包進(jìn)行解壓,如果是window系統(tǒng),打開bin文件夾,雙擊運(yùn)行startup.cmd即可,linux也是一樣,執(zhí)行 sh startup.sh 命令。

默認(rèn)運(yùn)行的是集群模式,如果不想使用集群,只想用單機(jī)模式,那么需要再運(yùn)行的時(shí)候添加如下命令.

window:

startup.cmd -m standalone

linux:

startup.sh -m standalone

如果不想每次運(yùn)行添加上述命令,那么可以修改startup.cmd或sh startup.sh腳本,修改為set MODE="standalone",示例圖如下:

配置完畢之后,執(zhí)行啟動(dòng)腳本,啟動(dòng)Nacos,默認(rèn)地址為http://localhost:8848/nacos,賬號(hào)和密碼為nacos/nacos,如果不想用這個(gè),可以在登錄之后的權(quán)限控制->用戶列表菜單中進(jìn)行修改。

示例圖如下:

Springboot整合Nacos示例

環(huán)境依賴

  • JDK1.8+
  • Springboot2.x
  • nacos2.x

官方的版本對應(yīng)建議配置:

版本 0.2.x.RELEASE 對應(yīng)的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 對應(yīng)的是 Spring Boot 1.x 版本。

但是為了防止版本問題,強(qiáng)烈建議Springboot的版本和nacos的版本完全一致。

maven倉庫配置如下;

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.1.RELEASE</version>
		<relativePath/>
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- Spring Boot Test 依賴 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		 <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2.2.1.RELEASE</version>
		</dependency>
		<!--日志 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j}</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${logback}</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>${logback}</version>
		</dependency>
	</dependencies>

注:如果Springboot是2.4以上的版本,maven倉庫需要額外增加如下依賴:

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
      </dependency>

一個(gè)簡單的示例

首先創(chuàng)建一個(gè)配置文件,配置文件用bootstrap.properties,配置信息如下:

spring.banner.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8
server.port=8299
spring.application.name=springboot-nacos
spring.profiles.active=dev
# nacos配置
## Nacos服務(wù)自動(dòng)注冊
nacos.discovery.autoRegister=true
## Nacos服務(wù)注冊中心地址
spring.cloud.nacos.discovery.server-addr= http://127.0.0.1:8848
## Nacos服務(wù)配置中心地址
spring.cloud.nacos.config.server-addr= http://127.0.0.1:8848

然后再來創(chuàng)建一個(gè)基本的啟動(dòng)類

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
 * @Author pancm
 * @Description springboot集成nacos配置中心
 * @Date  2024/1/26
 * @Param
 * @return
 **/
@SpringBootApplication
@EnableDiscoveryClient
public class App 
{
	private static final Logger logger = LoggerFactory.getLogger(App.class);
    public static void main( String[] args )
    {
    	// 啟動(dòng)嵌入式的 Tomcat 并初始化 Spring 環(huán)境及其各 Spring 組件
		SpringApplication.run(App.class, args);
		logger.info("程序啟動(dòng)成功!");
    }
}

這里我們還需要對配置是否生效進(jìn)行測試,這里就創(chuàng)建一個(gè)Controller,然后調(diào)用接口的時(shí)候返回配置信息。@RefreshScope注解是可以進(jìn)行動(dòng)態(tài)刷新。

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;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
/**
 * @Author pancm
 * @Description 官方示例文檔
 * @Date  2024/1/26
 * @Param
 * @return
 **/
@RestController
@RequestMapping("config")
@RefreshScope
public class ConfigController {
    @Value("${pcm.name:pcm-1001}")
    private String name;
    @RequestMapping(value = "/getName", method = GET)
    public String getName() {
        return name;
    }
}

:這里為了防止啟動(dòng)失敗,添加配置的時(shí)候設(shè)置一個(gè)默認(rèn)值。

然后運(yùn)行App,啟動(dòng)成功,日志信息如下:

首先我們調(diào)用接口來查看當(dāng)前的配置信息,輸入http://localhost:8299/config/getName,返回示例圖如下,可以看到是可以獲取默認(rèn)的配置。

然后我們在Nacos的頁面上面添加一個(gè)pcm.name的配置,并且更改配置的值,這里我們更改為pcm-2001,然后點(diǎn)擊發(fā)布。

這里需要注意一下DataId的名稱命名規(guī)則,默認(rèn)的情況下dataId=prefix.file-extension,其中profix默認(rèn)為${spring.application.name},file-extension默認(rèn)為properties。
如果指定了spring.profile.active,那么就會(huì)變成dataId=prefix-spring.profile.active.file-extension。
比如上述的項(xiàng)目名稱為springboot-nacos,配置文件的后綴是properties,那么DataId就是springboot-nacos.properties,指定了spring.profile.active=dev,那么DataId就是springboot-nacos-dev.properties
但是我指定了spring.profile.active=dev,為什么DataId是springboot-nacos.properties也可以呢?因?yàn)檫@里還涉及到一個(gè)優(yōu)先級的問題。

DataId有三個(gè)配置規(guī)則

  • dataId =prefix
  • dataId =prefix.file-extension
  • dataId =prefix-spring.profile.active.file-extension

他們的優(yōu)先級是按照匹配的精準(zhǔn)度來進(jìn)行了,也就是如果配置多個(gè)dataId的話,那么他會(huì)匹配最相近的,也就是匹配優(yōu)先級是3>2>1,這里我們也可以通過啟動(dòng)中的日志進(jìn)行查看。

發(fā)布成功之后我們可以看到日志也進(jìn)行了刷新。

然后我們再進(jìn)行訪問http://localhost:8299/config/getName。通過下面的示例圖我們可以看到配置已經(jīng)刷新為我們設(shè)置的最新配置了。

Nacos配置管理

上述示例中,我們已經(jīng)完成了一個(gè)簡單的獲取Nacos中的配置示例,并且可以實(shí)現(xiàn)配置刷新。但是如果我們有多個(gè)服務(wù)使用的話,那么我們需要對配置進(jìn)行區(qū)分,不建議都是用默認(rèn)的public空間,因此我們還需要?jiǎng)?chuàng)建新的命名空間,如果還有分組要求(一般就是環(huán)境區(qū)分,dev、test、prod),那么我們還可以再進(jìn)行創(chuàng)建配置時(shí)指定好group。

在nacos的命名空間菜單中,我們創(chuàng)建一個(gè)新的命名空間,其中命名空間ID這個(gè)保證唯一就行,默認(rèn)可以不填寫。

創(chuàng)建成功之后,我們在來創(chuàng)建一個(gè)新的配置并且指定分組為dev,方便我們管理。此時(shí)里面的配置內(nèi)容為pcm.name =pcm-dev。

創(chuàng)建完成之后,我們在Springboot的項(xiàng)目配置文件中新增如下配置:

## nacos命名空間id
spring.cloud.nacos.config.namespace= pcm-namespace--id
## 對應(yīng)的分組名稱
spring.cloud.nacos.config.group= dev
## 配置文件后綴名,也可以不配置,默認(rèn)為properties
spring.cloud.nacos.config.fileExtension= properties

重新啟動(dòng)項(xiàng)目,查看日子,我們可以看到已經(jīng)配置成功了。

然后我們在重新啟動(dòng)項(xiàng)目,http://localhost:8299/config/getName 通過下面的示例圖我們可以看到配置已經(jīng)是設(shè)置的命名空間配置了。

多配置文件

在使用Nacos中,有時(shí)配置太多,不想放在一個(gè)配置文件中,此時(shí)就可以使用多個(gè)配置文件來進(jìn)行區(qū)分管理。

在bootstrap.properties配置文件中新增如下配置,如果后續(xù)還有新的配置,參考下列配置,遞增extension-configs[0]的數(shù)值即可,比如在新增一個(gè)配置文件,那么就是extension-configs[1] = xxx.properties 這樣配置就可以了。

# 新增額外配置
##額外的第一個(gè)配置文件的dataId
spring.cloud.nacos.config.extension-configs[0].data-id=pcm-dev.properties
##額外的第一個(gè)配置文件的分組
spring.cloud.nacos.config.extension-configs[0].group=dev

在nacos中新增改配置文件,然后這里添加一個(gè)新的配置pcm.age=28.

然后再ConfigController代碼中新增如下接口,添加完成之后重啟項(xiàng)目。

    @Value("${pcm.age:18}")
    private String age;
    @RequestMapping(value = "/getAge", method = GET)
    public String getAge() {
        return age;
    }

訪問http://localhost:8299/config/getAge。通過下面的示例圖我們可以看到配置已經(jīng)生生效了。

其他

關(guān)于SpringBoot整合nacos的demo簡單講解的文章就講解到這里了,如有不妥,歡迎指正!

到此這篇關(guān)于springboot整合nacos的入門Demo及Nacos安裝部署的文章就介紹到這了,更多相關(guān)springboot整合nacos內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Jdk1.8 HashMap實(shí)現(xiàn)原理詳細(xì)介紹

    Jdk1.8 HashMap實(shí)現(xiàn)原理詳細(xì)介紹

    這篇文章主要介紹了Jdk1.8 HashMap實(shí)現(xiàn)原理詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 如何根據(jù)帶賬號(hào)密碼的WSDL地址生成JAVA代碼

    如何根據(jù)帶賬號(hào)密碼的WSDL地址生成JAVA代碼

    這篇文章主要介紹了如何根據(jù)帶賬號(hào)密碼的WSDL地址生成JAVA代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • springboot文件虛擬路徑映射方式

    springboot文件虛擬路徑映射方式

    這篇文章主要介紹了springboot文件虛擬路徑映射方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java 發(fā)送http請求上傳文件功能實(shí)例

    Java 發(fā)送http請求上傳文件功能實(shí)例

    本文通過實(shí)例代碼給大家介紹了Java 發(fā)送http請求上傳文件功能,需要的朋友參考下吧
    2017-06-06
  • JAVA錯(cuò)誤:'無效目標(biāo)發(fā)行版?17'的解決方案

    JAVA錯(cuò)誤:'無效目標(biāo)發(fā)行版?17'的解決方案

    這篇文章主要給大家介紹了關(guān)于JAVA錯(cuò)誤:'無效目標(biāo)發(fā)行版?17'的解決方案,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或使用java具有一的的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 關(guān)于RowBounds分頁原理、RowBounds的坑記錄

    關(guān)于RowBounds分頁原理、RowBounds的坑記錄

    這篇文章主要介紹了關(guān)于RowBounds分頁原理、RowBounds的坑記錄,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之貪心算法

    Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之貪心算法

    我們可能在好多地方都會(huì)聽到貪心算法這一概念,并且它的算法思想也比較簡單就是說算法只保證局部最優(yōu),進(jìn)而達(dá)到全局最優(yōu)。但我們實(shí)際編程的過程中用的并不是很多,究其原因可能是貪心算法使用的條件比較苛刻,所要解決的問題必須滿足貪心選擇性質(zhì)
    2022-02-02
  • idea解決springboot中的依賴版本沖突問題

    idea解決springboot中的依賴版本沖突問題

    這篇文章主要介紹了idea解決springboot中的依賴版本沖突問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java如何判斷一個(gè)整數(shù)有多少位

    Java如何判斷一個(gè)整數(shù)有多少位

    這篇文章主要介紹了Java如何判斷一個(gè)整數(shù)有多少位問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 通過Java 程序獲取Word中指定圖片的坐標(biāo)位置

    通過Java 程序獲取Word中指定圖片的坐標(biāo)位置

    本文介紹通過Java程序獲取Word文檔中指定圖片的坐標(biāo)位置,程序運(yùn)行環(huán)境是jdk1.8開發(fā)環(huán)境idea,通過java程序代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-05-05

最新評論