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

Spring Cloud Alibaba nacos配置中心

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

系列文章目錄

第一章 Java線程池技術(shù)應(yīng)用
第二章 CountDownLatch和Semaphone的應(yīng)用
第三章 Spring Cloud 簡介
第四章 Spring Cloud Netflix 之 Eureka
第五章 Spring Cloud Netflix 之 Ribbon
第六章 Spring Cloud 之 OpenFeign
第七章 Spring Cloud 之 GateWay
第八章 Spring Cloud Netflix 之 Hystrix
第九章 代碼管理gitlab 使用
第十章 SpringCloud Alibaba 之 Nacos discovery
第十一章 SpringCloud Alibaba 之 Nacos Config

Spring Cloud Alibaba nacos配置中心,Java微服務(wù),nacos config,微服務(wù)配置中心,spring cloud,alibaba,nacos,config,原力計(jì)劃


前言

Nacos 提供用于存儲(chǔ)配置和其他元數(shù)據(jù)的 key/value 存儲(chǔ),為分布式系統(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)時(shí),您可以管理這些環(huán)境之間的配置,并確保應(yīng)用程序具有遷移時(shí)需要運(yùn)行的所有內(nèi)容。
Spring Cloud Alibaba nacos配置中心,Java微服務(wù),nacos config,微服務(wù)配置中心,spring cloud,alibaba,nacos,config,原力計(jì)劃

1、Nacos配置中心配置信息

準(zhǔn)備配置,nacos server中新建nacos-config.properties
Spring Cloud Alibaba nacos配置中心,Java微服務(wù),nacos config,微服務(wù)配置中心,spring cloud,alibaba,nacos,config,原力計(jì)劃

2、項(xiàng)目里配置

2.1、添加依賴,配置pom.xml

<dependen?cy>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2021.0.4.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

2.2、添加bootstrap.yml

spring:
  profiles:
    #開發(fā)環(huán)境dev,測試環(huán)境test,生產(chǎn)環(huán)境prod
    active: dev
  application:
    name: app-api-service #服務(wù)名
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        group: DEFAULT_GROUP
        file-extension: yml #指定yaml格式的配置
        refresh-enabled: true

2.3、添加bootstrap.yml

server:
  port: 80
spring:  
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #Nacos server 的地址
feign:
  client:
    config:
      default:
        #建立連接所用的時(shí)間,適用于網(wǎng)絡(luò)狀況正常的情況下,兩端連接所需要的時(shí)間
        ConnectTimeOut: 3000
        #指建立連接后從服務(wù)端讀取到可用資源所用的時(shí)間
        ReadTimeOut: 5000
kelvin:
  address: cat

2.3.1、增加Nacos配置

備注:Data ID為:服務(wù)名-環(huán)境名稱.yml
Spring Cloud Alibaba nacos配置中心,Java微服務(wù),nacos config,微服務(wù)配置中心,spring cloud,alibaba,nacos,config,原力計(jì)劃

2.4、動(dòng)態(tài)刷新配置驗(yàn)證

@RestController
@RequestMapping("/user")
//@DefaultProperties(defaultFallback = "userInfoListFallBack")
@RefreshScope
public class UserController {
    
    @Value("${kelvin.address}")
    private String url;
   
    @GetMapping("/url")
    public String url(){
        return url;
    }
}

2.5、網(wǎng)關(guān)與配置中心

2.5.1、添加依賴,配置pom.xml

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2021.0.4.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

2.5.2、添加bootstrap.yml文件

server:
  port: 80
spring:
  application:
    name: drp-gateway-service
  profiles:
    #開發(fā)環(huán)境dev,測試環(huán)境test,生產(chǎn)環(huán)境prod
    active: dev
  jackson:
    time-zone: GMT+8
  cloud:
    loadbalancer:
      ribbon:
        enabled: false
    nacos:
      discovery:
        server-addr: localhost:8848  #Nacos server 的地址
      config:
        server-addr: localhost:8848
        name: gateway-router
        namespace: public
        group: DEFAULT_GROUP
        #file-extension: json #指定yaml格式的配置
        refresh-enabled: true #支持刷新

2.5.3、Nacos添加配置

Spring Cloud Alibaba nacos配置中心,Java微服務(wù),nacos config,微服務(wù)配置中心,spring cloud,alibaba,nacos,config,原力計(jì)劃文章來源地址http://www.zghlxwxcb.cn/news/detail-717761.html

[{
    "id": "user-router",
    "order": 0,
    "predicates": [{
        "args": {
            "pattern": "/user/userInfoList/**"
        },
        "name": "Path"
    }],
    "uri": "lb://user-service"
 }  
]

2.5.4、添加類

package com.kelvin.drp.gateway.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.cloud.gateway.event.RefreshRoutesEvent;
import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.cloud.gateway.route.RouteDefinitionWriter;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;


@RefreshScope
@Component
@Slf4j
public class DynamicRouteConfig implements ApplicationEventPublisherAware {
    /**
     * nacos 配置dataId
     */
    @Value("${config.dynamic.route.dataId:gateway-router}")
    private String dataId = "gateway-router";
    /**
     * nacos 配置group
     */
    @Value("${config.dynamic.route.group:DEFAULT_GROUP}")
    private String group = "DEFAULT_GROUP";

    /**
     * nacos 配置地址
     */
    @Value("${spring.cloud.nacos.config.server-addr}")
    private String serverAddr;

    @Autowired
    private RouteDefinitionWriter routeDefinitionWriter;

    private ApplicationEventPublisher applicationEventPublisher;

    private static final List<String> ROUTE_LIST = new ArrayList<>();

    @PostConstruct
    public void dynamicRouteByNacosListener() {
        try {
            ConfigService configService = NacosFactory.createConfigService(serverAddr);

// 程序首次啟動(dòng), 并加載初始化路由配置
            String initConfigInfo = configService.getConfig(dataId, group, 5000);
            this.addAndPublishBatchRoute(initConfigInfo);

//添加監(jiān)聽路由變化
            configService.addListener(dataId, group, new Listener() {
                @Override
                public void receiveConfigInfo(String configInfo) {
                    clearRoute();
                    try {
                        List<RouteDefinition> gatewayRouteDefinitions = JSONObject.parseArray(configInfo, RouteDefinition.class);
                        for (RouteDefinition routeDefinition : gatewayRouteDefinitions) {
                            addRoute(routeDefinition);
                        }
                        publish();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }

                @Override
                public Executor getExecutor() {
                    return null;
                }
            });
        } catch (NacosException e) {
            e.printStackTrace();
        }
    }


    private void publish() {
        this.applicationEventPublisher.publishEvent(new RefreshRoutesEvent(this.routeDefinitionWriter));
    }

    @Override
    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
        this.applicationEventPublisher = applicationEventPublisher;
    }

    /**
     * 批量 添加及發(fā)布 路由
     *
     * @param configInfo 配置文件字符串, 必須為json array格式
     */
    private void addAndPublishBatchRoute(String configInfo) {
        try {
            clearRoute();
            List<RouteDefinition> gatewayRouteDefinitions = JSONObject.parseArray(configInfo, RouteDefinition.class);
            for (RouteDefinition routeDefinition : gatewayRouteDefinitions) {
                addRoute(routeDefinition);
            }
            publish();
            log.info("Dynamic config gateway route finished. {}", JSON.toJSONString(gatewayRouteDefinitions));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 清除路由信息
     */
    private void clearRoute() {
        for (String id: ROUTE_LIST) {
            this.routeDefinitionWriter.delete(Mono.just(id)).subscribe();
        }
        ROUTE_LIST.clear();
    }

    /**
     * 添加路由
     *
     * @param definition
     */
    private void addRoute(RouteDefinition definition) {
        try {
            routeDefinitionWriter.save(Mono.just(definition)).subscribe();
            ROUTE_LIST.add(definition.getId());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

到了這里,關(guān)于Spring Cloud Alibaba nacos配置中心的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

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

    2024年02月11日
    瀏覽(92)
  • Spring Cloud Alibaba nacos配置中心

    Spring Cloud Alibaba nacos配置中心

    第一章 Java線程池技術(shù)應(yīng)用 第二章 CountDownLatch和Semaphone的應(yīng)用 第三章 Spring Cloud 簡介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Spring Cloud Netflix 之 Hystrix 第九章 代碼管理gitlab 使用 第十章 Spr

    2024年02月08日
    瀏覽(97)
  • 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è)【+】號(hào): 添加配置 填寫【Data ID】要求組內(nèi)唯一,【Group】組名,

    2024年02月08日
    瀏覽(88)
  • 【微服務(wù) Spring Cloud Alibaba】- Nacos 服務(wù)注冊(cè)中心

    【微服務(wù) Spring Cloud Alibaba】- Nacos 服務(wù)注冊(cè)中心

    目錄 1. 什么是注冊(cè)中心? 1.2 注冊(cè)中心的作用 2. SpringBoot 整合 Nacos 實(shí)現(xiàn)服務(wù)注冊(cè)中心 2.1 將服務(wù)注冊(cè)到 Nacos 2.2 實(shí)現(xiàn)消費(fèi)者 3. 服務(wù)列表各個(gè)參數(shù)的含義、作用以及應(yīng)用場景 注冊(cè)中心是微服務(wù)架構(gòu)中的一個(gè)重要組件,它用于實(shí)現(xiàn) 服務(wù)注冊(cè) 與 服務(wù)發(fā)現(xiàn) 。 【思考一】什么叫服務(wù)

    2024年02月06日
    瀏覽(94)
  • 【配置nacos】使用application.yml配置文件來配置spring-cloud-starter-alibaba-nacos-config

    【配置nacos】使用application.yml配置文件來配置spring-cloud-starter-alibaba-nacos-config

    1.首先修改pom.xml文件,引入spring-cloud-starter-alibaba-nacos-config依賴 2.在應(yīng)用的 /src/main/resources/application.yml 配置文件中配置 Nacos Config 元數(shù)據(jù) 這里注意一下, 官方文檔上面給的使用bootstrap.properties 來進(jìn)行配置的, 我是使用的application.yml 來進(jìn)行配置的。 【出現(xiàn)的問題以及解決】

    2024年01月24日
    瀏覽(16)
  • 【Spring Cloud Alibaba】Nacos config的使用和高階用法

    【Spring Cloud Alibaba】Nacos config的使用和高階用法

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

    2024年02月06日
    瀏覽(18)
  • 微服務(wù)Spring Cloud Config配置中心與RabbitMQ安裝指南

    微服務(wù)Spring Cloud Config配置中心與RabbitMQ安裝指南

    本文檔詳細(xì)描述了如何在Spring Cloud微服務(wù)架構(gòu)中設(shè)置Config配置中心,將項(xiàng)目配置文件存儲(chǔ)在Git服務(wù)器上(如GitHub或Gitee),并在微服務(wù)啟動(dòng)時(shí)從Config配置中心獲取配置文件。同時(shí),提供了RabbitMQ消息隊(duì)列的安裝指南,為微服務(wù)之間的通信提供可靠的消息傳遞機(jī)制。

    2024年02月11日
    瀏覽(19)
  • 微服務(wù) – Spring Cloud – Nacos 配置中心

    Data ID : nacos-config-client-dev.yaml Group: DEV-CLOUD2023

    2024年02月11日
    瀏覽(90)
  • 解決 Spring Cloud 2021.0.5 版本,使用 nacos 做配置中心,報(bào) No spring.config.import property has been defined 的問題

    報(bào)錯(cuò)信息如下 Description: No spring.config.import property has been defined Spring 官方給出的解決方案如下 Add a spring.config.import=nacos: property to your configuration. If configuration is not required add spring.config.import=optional:nacos: instead. To disable this check, set spring.cloud.nacos.config.import-check.enabled=false. 這里只

    2024年02月11日
    瀏覽(90)
  • Spring Cloud集成Nacos實(shí)現(xiàn)服務(wù)配置中心 | Spring Cloud 7

    先我們來看一下,微服務(wù)架構(gòu)下關(guān)于配置文件的一些問題: 配置文件相對(duì)分散。在一個(gè)微服務(wù)架構(gòu)下,配置文件會(huì)隨著微服務(wù)的增多變的越來越多,而且分散在各個(gè)微服務(wù)中,不好統(tǒng)一配置和管理。 配置文件無法區(qū)分環(huán)境,開發(fā)環(huán)境、測試環(huán)境、線上環(huán)境。微服務(wù)項(xiàng)目可能會(huì)

    2024年02月14日
    瀏覽(88)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包