国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Cloud集成Nacos作為配置中心

這篇具有很好參考價值的文章主要介紹了Spring Cloud集成Nacos作為配置中心。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

往期回顧

Nacos的安裝與配置

Spring Cloud集成Nacos作為注冊中心

LoadBalacer集成Nacos實(shí)現(xiàn)負(fù)載均衡

常見的負(fù)載均衡策略分析

Spring Cloud集成Dubbo實(shí)現(xiàn)RPC調(diào)用

前面我們已經(jīng)介紹了Nacos 的安裝與配置,Spring Cloud 集成Nacos 作為服務(wù)的注冊中心,集成Nacos 實(shí)現(xiàn)服務(wù)的負(fù)載均衡和一些常見的負(fù)載均衡策略以及使用Dubbo進(jìn)行RPC調(diào)用

接下來,我們將介紹如何使用Nacos 作為配置中心加載遠(yuǎn)程配制文件

配置中心

什么是配置中心?

配置中心,顧名思義,就是用來統(tǒng)一管理項目中所有配置的系統(tǒng)。

在微服務(wù)架構(gòu)中,當(dāng)系統(tǒng)從一個單體應(yīng)用,被拆分成分布式系統(tǒng)上一個個服務(wù)節(jié)點(diǎn)后,配置文件也必須跟著遷移(分割),這樣配置就分散了,不僅如此,分散中還包含著冗余。配置中心將配置從各應(yīng)用中剝離出來,對配置進(jìn)行統(tǒng)一管理,應(yīng)用自身不需要自己去管理配置。

如果一個中型的項目,不采用配置中心的模式,一大堆的各類配置項,各種不定時的修改需求,一定會讓開發(fā)同學(xué)非常頭疼且管理十分混亂。所以,我們需要使用配置中心對這些配置進(jìn)行集中管理。

一個合格的配置中心需要滿足如下特性:

  • 配置項容易讀取和修改
  • 分布式環(huán)境下應(yīng)用配置的可管理性,即提供遠(yuǎn)程管理配置的能力
  • 支持對配置的修改的檢視以把控風(fēng)險
  • 可以查看配置修改的歷史記錄
  • 不同部署環(huán)境下應(yīng)用配置的隔離性

配置中心的作用

  1. 對配置文件進(jìn)行集中管理,在不同的環(huán)境下或者不同配置中,可以對配置文件進(jìn)行更新和部署
  2. 在程序的運(yùn)行期間,可以對程序中的配置文件進(jìn)行動態(tài)性調(diào)整。使用分布式配置中心,就不需要在每一臺服務(wù)器上都進(jìn)行配置文件的修改,只需要在總服務(wù)器中進(jìn)行修改,系統(tǒng)就會向其他的服務(wù)器進(jìn)行統(tǒng)一的修改配置
  3. 如果系統(tǒng)程序的配置發(fā)生了變動,無需要重新重啟服務(wù)器,就能夠自動感知相應(yīng)的變化,并將新的變化統(tǒng)一發(fā)送到相應(yīng)程序上
  4. 支持不同環(huán)境的隔離和切換

分布式配置中心作用有很多,這里僅僅簡單羅列了幾個最為常見的作用

Nacos Config

Nacos 提供用于存儲配置和其他元數(shù)據(jù)的 key/value 存儲,為分布式系統(tǒng)中的外部化配置提供服務(wù)器端和客戶端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 應(yīng)用的外部屬性配置。

Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客戶端和服務(wù)器上的概念與 Spring Environment 和 PropertySource 有著一致的抽象,在特殊的 bootstrap 階段,配置被加載到 Spring 環(huán)境中。當(dāng)應(yīng)用程序通過部署管道從開發(fā)到測試再到生產(chǎn)時,您可以管理這些環(huán)境之間的配置,并確保應(yīng)用程序具有遷移時需要運(yùn)行的所有內(nèi)容。

Nacos是Spring Cloud組件Spring Cloud Config的替代方案

Spring Cloud Config 分為服務(wù)端和客戶端兩個部分。服務(wù)端被稱為分布式配置中心,它是個獨(dú)立的應(yīng)用,可以從配置倉庫獲取配置信息并提供給客戶端使用??蛻舳丝梢酝ㄟ^配置中心來獲取配置信息,在啟動時加載配置。Spring Cloud Config 的配置中心默認(rèn)采用Git來存儲配置信息,所以天然就支持配置信息的版本管理,并且可以使用Git客戶端來方便地管理和訪問配置信息

快速開始

1.啟動Nacos服務(wù)

如若還未啟動Nacos請參見 Nacos的安裝與配置

2.引入依賴

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

這里我遇見了一個bug,詳細(xì)參見Param ‘serviceName‘ is illegal, serviceName is blank

這個bug出現(xiàn)的原因是我沒有導(dǎo)入bootstrap的依賴,導(dǎo)入以下依賴即可

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

3.修改配制文件

修改application.yml ,啟用的是dev環(huán)境的配置

spring:
  profiles:
    active: dev
server:
  port: 8081

添加bootstrap.yml ,主要是對Nacos的作為配置中心的功能進(jìn)行配置:

spring:
  application:
    name: user-service
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.199.128:8848 #Nacos地址
      config:
        server-addr: 192.168.199.128:8848 #Nacos地址
        file-extension: yaml #這里我們獲取的yaml格式的配置

management:
  endpoints:
    web:
      exposure:
        include: "*"

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath:cuit/epoch/pymjl/mapper/xml/*.xml
  type-aliases-package: cuit.epoch.pymjl.entity
  

注意:

當(dāng)你使用域名的方式來訪問 Nacos 時,spring.cloud.nacos.config.server-addr 配置的方式為 域名:port。

例如 Nacos 的域名為abc.com.nacos,監(jiān)聽的端口為 80,則 spring.cloud.nacos.config.server-addr=abc.com.nacos:80。 注意 80 端口不能省略。

4.創(chuàng)建Controller

@RefreshScope 可以使Nacos 客戶端運(yùn)行過程中可以獲取到配置中心配置的變化然后更新

package cuit.epoch.pymjl.controller;

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;

/**
 * @author Pymjl
 * @version 1.0
 * @date 2022/8/31 20:15
 **/
@RestController
@RefreshScope
@RequestMapping("/config")
public class ConfigController {
    @Value("${config.info:default}")
    private String info;

    @GetMapping("/info")
    public String getInfo() {
        return info;
    }
}

5.基于 dataid 為 yaml 的文件擴(kuò)展名配置方式

我們先來講下Nacos中的dataid的組成格式及與SpringBoot配置文件中的屬性對應(yīng)關(guān)系:

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

比如說我們現(xiàn)在要獲取應(yīng)用名稱為user-service的應(yīng)用在dev環(huán)境下的yaml配置,dataid如下:

user-service-dev.yaml

根據(jù)上面的命名方式在Nacos 控制臺添加如下配置

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource 
    driver-class-name: com.mysql.cj.jdbc.Driver 
    url: jdbc:mysql://192.168.199.128:3306/cloud_learn?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    username: root 
    password: 123456 
    druid:
      initialSize: 10  
      minIdle: 10       
      maxActive: 100    
      maxWait: 60000    
      timeBetweenEvictionRunsMillis: 60000  
      minEvictableIdleTimeMillis: 30000     
      validationQuery: select 'x' 
      testWhileIdle: true    
      #通過別名的方式配置擴(kuò)展插件,常用的插件有:監(jiān)控統(tǒng)計用的filter:stat,日志用的filter:log4j,防御sql注入的filter:wall  
      filters: stat,wall 
      # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 
      # 合并多個DruidDataSource的監(jiān)控數(shù)據(jù)
      useGlobalDataSourceStat: false 
  cache:
    type: redis
  redis:
    host: 192.168.199.128
    port: 6379
    password: 123456
config:
  info: This is Nacos config test

dubbo:
  application:
    name: ${spring.application.name}
    logger: slf4j
  protocol:
    name: dubbo
    port: -1
  registry:
    address: nacos://192.168.199.128:8848
  config-center:
    address: nacos://192.168.199.128:8848
  metadata-report:
    address: nacos://192.168.199.128:8848
  consumer:
    validation: true
    timeout: 3000
    check: false
    loadbalance: roundrobin
  scan:
    base-packages: cuit.epoch.pymjl.controller

如圖所示:

springcloudnacos配置中心,springcloud,微服務(wù),java,spring cloud

spring-cloud-starter-alibaba-nacos-config 在加載配置的時候,不僅僅加載了以 dataid 為 ${spring.application.name}.${file-extension:properties} 為前綴的基礎(chǔ)配置,還加載了dataid為 ${spring.application.name}-${profile}.${file-extension:properties} 的基礎(chǔ)配置。

在日常開發(fā)中如果遇到多套環(huán)境下的不同配置,可以通過Spring 提供的 ${spring.profiles.active} 這個配置項來配置。

開始測試

先啟動服務(wù),如圖,啟動成功

springcloudnacos配置中心,springcloud,微服務(wù),java,spring cloud

訪問接口測試

springcloudnacos配置中心,springcloud,微服務(wù),java,spring cloud

接下來我們更改在Nacos 中的配置,然后發(fā)布更新

config:
  info: Changeing the nacos config

觀察Spring的控制臺輸出

springcloudnacos配置中心,springcloud,微服務(wù),java,spring cloud

再訪問剛才的接口

springcloudnacos配置中心,springcloud,微服務(wù),java,spring cloud

可見,配制文件完成了實(shí)時的動態(tài)更新,至此

關(guān)于Nacos的其他配置可參見官方文檔

ngeing the nacos config文章來源地址http://www.zghlxwxcb.cn/news/detail-606200.html


觀察Spring的控制臺輸出

[外鏈圖片轉(zhuǎn)存中...(img-RvY46qND-1662117389530)]

再訪問剛才的接口

[外鏈圖片轉(zhuǎn)存中...(img-5eS2GBg2-1662117389530)]

可見,配制文件完成了實(shí)時的動態(tài)更新,至此

關(guān)于Nacos的其他配置可參見[官方文檔](https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config)

項目源碼:[gitee](https://gitee.com/pymjl_0/cloud-learn)	[github](https://github.com/Pymjl/cloud-learn)

到了這里,關(guān)于Spring Cloud集成Nacos作為配置中心的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Cloud Alibaba Nacos 構(gòu)建配置中心

    Spring Cloud Alibaba Nacos 構(gòu)建配置中心

    登錄 Nacos 面板,依次點(diǎn)擊左側(cè)菜單欄【命名空間→新建命名空間】、填寫命名空間名和描述信息,點(diǎn)擊【確定】: 依次點(diǎn)擊左側(cè)菜單欄【配置管理→配置列表】、切換到指定命名空間【此處為 shop】、點(diǎn)擊右側(cè)【+】號: 添加配置 填寫【Data ID】要求組內(nèi)唯一,【Group】組名,

    2024年02月08日
    瀏覽(89)
  • Spring Cloud Alibaba Nacos(服務(wù)注冊及配置中心)

    Nacos是由阿里巴巴提供的一款專門構(gòu)建云本地應(yīng)用的 動態(tài)服務(wù)發(fā)現(xiàn)、配置中心和服務(wù)管理平臺 。 在Spring Cloud Alibaba中常使用Nacos作為注冊中心和分布式配置中心。 ?(1)服務(wù)發(fā)現(xiàn)和管理 動態(tài)服務(wù)發(fā)現(xiàn)是以服務(wù)為中心(例如微服務(wù)或云原生)體系結(jié)構(gòu)的關(guān)鍵。Nacos支持基于DN

    2024年02月16日
    瀏覽(97)
  • Spring Cloud Alibaba--Nacos服務(wù)注冊和配置中心

    Spring Cloud Alibaba--Nacos服務(wù)注冊和配置中心

    Nacos 是Dynamic Naming and Configuration Service的首字母簡稱,一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。 Nacos的特性,官網(wǎng)解釋如下: 服務(wù)發(fā)現(xiàn)和服務(wù)健康監(jiān)測 Nacos 支持基于 DNS 和基于 RPC 的服務(wù)發(fā)現(xiàn)。服務(wù)提供者使用 原生SDK、OpenAPI、或一個獨(dú)立的Age

    2024年02月05日
    瀏覽(117)
  • Spring Cloud Alibaba 微服務(wù)2,注冊中心演變 + Nacos注冊中心與配置中心

    Spring Cloud Alibaba 微服務(wù)2,注冊中心演變 + Nacos注冊中心與配置中心

    ??作者簡介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多屆新星計劃導(dǎo)師?、博客專家?? , 專注Java硬核干貨分享,立志做到Java賽道全網(wǎng)Top N。 ??本文收錄于 Java基礎(chǔ)教程系列(進(jìn)階篇) ,本專欄是針對大學(xué)生、初級Java工程師精心打造, 針對Java生態(tài),逐個擊破,

    2024年02月02日
    瀏覽(1681)
  • Spring Cloud集成Nacos實(shí)現(xiàn)本地配置優(yōu)先 | Spring Cloud 9

    Nacos Config Starter 實(shí)現(xiàn)了 org.springframework.cloud.bootstrap.config.PropertySourceLocator 接口,并將優(yōu)先級設(shè)置為最高。 在 Spring Cloud 應(yīng)用啟動階段,會主動從 Nacos Server 端獲取對應(yīng)的數(shù)據(jù),并將獲取到的數(shù)據(jù)轉(zhuǎn)換成 PropertySource 且注入到 Environment 的 PropertySources 屬性中,所以使用 @Value 注解

    2024年02月15日
    瀏覽(29)
  • spring cloud使用git作為配置中心,git開啟了雙因子認(rèn)證,如何寫本地配置文件

    spring cloud使用git作為配置中心,git開啟了雙因子認(rèn)證,死活認(rèn)證不成功?。。。?! 報錯 org.eclipse.jgit.api.errors.TransportException: https://git.qualink.com/zhaoxin15/sc-config.git: not authorized 或者就是 java.net.ConnectException: Connection refused: connect 如果你的git也開啟了雙因子認(rèn)證,那么配置

    2024年02月11日
    瀏覽(19)
  • day10-Spring Cloud Alibaba Nacos-服務(wù)注冊與配置中心

    官網(wǎng):https://github.com/alibaba/nacos,Nacos官方中文手冊 Nacos:Spring Cloud Alibaba服務(wù)注冊與配置中心(非常詳細(xì)) (biancheng.net) Spring Cloud Alibaba系列-一文讀懂Nacos原理 - 掘金 (juejin.cn) Nacos /nɑ:k??s/ 是 Dynamic Naming and Configuration Service的首字母簡稱,一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服

    2024年02月08日
    瀏覽(121)
  • 微服務(wù) Spring Cloud 7,Nacos配置中心的Pull原理,附源碼

    微服務(wù) Spring Cloud 7,Nacos配置中心的Pull原理,附源碼

    大家好,我是哪吒。 在單體服務(wù)時代,關(guān)于配置信息,管理一套配置文件即可。 而拆分成微服務(wù)之后,每一個系統(tǒng)都會有自己的配置,并且都各不相同,有些配置還需要動態(tài)改變,以達(dá)到動態(tài)降級、切流量、擴(kuò)縮容等目的。 在Spring Boot開發(fā)中,可以把配置項放到config文件中

    2024年02月04日
    瀏覽(97)
  • Spring Cloud開發(fā)實(shí)踐(七): 集成Consul配置中心

    Spring Cloud開發(fā)實(shí)踐(一): 簡介和根模塊 Spring Cloud開發(fā)實(shí)踐(二): Eureka服務(wù)和接口定義 Spring Cloud開發(fā)實(shí)踐(三): 接口實(shí)現(xiàn)和下游調(diào)用 Spring Cloud開發(fā)實(shí)踐(四): Docker部署 Spring Cloud開發(fā)實(shí)踐(五): Consul - 服務(wù)注冊的另一個選擇 Spring Cloud開發(fā)實(shí)踐(六): 基于Consul和Spring Cloud 2021.0的演示項目

    2024年02月07日
    瀏覽(13)
  • 【深入了解Spring Cloud Alibaba Nacos:服務(wù)注冊和配置中心】—— 每天一點(diǎn)小知識

    【深入了解Spring Cloud Alibaba Nacos:服務(wù)注冊和配置中心】—— 每天一點(diǎn)小知識

    ??????????????????????????????????????????????????????????? ?? 深入了解 S p r i n g C l o u d A l i b a b a N a c o s :服務(wù)注冊和配置中心 color{#FF1493}{深入了解Spring Cloud Alibaba Nacos:服務(wù)注冊和配置中心} 深入了解 Sp r in g Cl o u d A l ibaba N a cos :服務(wù)注

    2024年02月11日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包