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

SpringCloud-Gateway路由動(dòng)態(tài)配置Nacos實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了SpringCloud-Gateway路由動(dòng)態(tài)配置Nacos實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  1. 編寫配置類
    @Component
    public class NacosConfig {
        public static String GROUP_ID ;
        public static String DATA_ID ;
        @Value("${nacos.gateway.route.config.group}")
        public void setGroupId(String groupId){
            GROUP_ID = groupId ;
        }
        @Value("${nacos.gateway.route.config.data-id}")
        public void setDataId(String dataId){
            DATA_ID = dataId ;
        }
    }
    
  2. properties添加配置
    nacos.gateway.route.config.group=DEFAULT_GROUP
    nacos.gateway.route.config.data-id=hello-gateway-router.json
    
  3. 自定義RouteDefinitionLocator
    @Slf4j
    @Component
    public class NcosRouteDefinitionLocator implements RouteDefinitionLocator, InitializingBean {
        private volatile List<RouteDefinition> routeDefinitions = new CopyOnWriteArrayList<>() ;
        @Autowired
        private NacosConfigManager nacosConfigManager ;
        @Autowired
        private ObjectMapper objectMapper ;
        @Autowired
        private ApplicationEventPublisher eventPublisher ;
        private ConfigService configService ;
        @Override
        public Flux<RouteDefinition> getRouteDefinitions() {
            return Flux.fromIterable(routeDefinitions);
        }
        @Override
        public void afterPropertiesSet() throws Exception {
            // 從nacos獲取routDefinition
            configService = nacosConfigManager.getConfigService();
            // 讀取配置并裝載
            this.initNacosConfig();
            // 添加listener,當(dāng)數(shù)據(jù)變化時(shí)接收通知
            this.initNacosListener();
        }
        private void initNacosConfig(){
            try {
                String content = configService.getConfig(
                        NacosConfig.DATA_ID,
                        NacosConfig.GROUP_ID,
                        3000L
                );
                CollectionType collectionType = objectMapper.getTypeFactory()
                        .constructCollectionType(ArrayList.class, RouteDefinition.class);
                routeDefinitions = objectMapper.readValue(content, collectionType);
            }catch (NacosException e){
                log.info("nacos config NacosException ", e);
            } catch (JsonProcessingException e) {
                log.info("nacos config JsonProcessingException ", e);
            }
        }
        private void initNacosListener() throws NacosException {
            configService.addListener(
                    NacosConfig.DATA_ID,
                    NacosConfig.GROUP_ID,
                    new DataChangeListener());
        }
        class DataChangeListener implements Listener{
    
            @Override
            public Executor getExecutor() {
                return null;
            }
            @Override
            public void receiveConfigInfo(String content) {
                try {
                    log.info("gateway config change : {}", content);
                    CollectionType collectionType = objectMapper.getTypeFactory()
                            .constructCollectionType(ArrayList.class, RouteDefinition.class);
                    routeDefinitions = objectMapper.readValue(content, collectionType);
                    // 當(dāng)數(shù)據(jù)發(fā)生變化后發(fā)布刷新事件,通知CachingRouteLocator需要重新加載route定義
                    eventPublisher.publishEvent(new RefreshRoutesEvent(content));
                }catch (JsonProcessingException e) {
                    log.info("nacos config JsonProcessingException ", e);
                }
            }
        }
    }
    
  4. 編寫GatewayDynamicConfiguration配置類
    @Configuration
    public class GatewayDynamicConfiguration {
        @Bean
        @ConditionalOnProperty(value = "spring.cloud.gateway.dynamic.config.enable", matchIfMissing = true)
        public NacosRouteDefinitionLocator routeDefinitionLocator(){
            return new NacosRouteDefinitionLocator() ;
        }
    }
    

文章來源地址http://www.zghlxwxcb.cn/news/detail-728569.html

到了這里,關(guān)于SpringCloud-Gateway路由動(dòng)態(tài)配置Nacos實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

  • SpringCloud-GateWay

    SpringCloud-GateWay

    隨著微服務(wù)架構(gòu)的盛行,項(xiàng)目由原來的單體系統(tǒng)不斷進(jìn)行演變到現(xiàn)在的微服務(wù),系統(tǒng)被拆分為合適粒度的多個(gè)服務(wù),當(dāng)面臨多服務(wù)的調(diào)用,客戶端(發(fā)送請(qǐng)求的一段)要如何去調(diào)用這么多的微服務(wù)呢?如果按照沒有使用網(wǎng)關(guān)的方式去調(diào)用對(duì)于客戶端是不是就需要知道每一個(gè)服

    2024年02月09日
    瀏覽(30)
  • springcloud-gateway簡(jiǎn)述

    springcloud-gateway簡(jiǎn)述

    目錄 定義 網(wǎng)關(guān)工程對(duì)應(yīng)pom文件 網(wǎng)關(guān)工程對(duì)應(yīng)的bootstrap.yaml Nacos對(duì)應(yīng)網(wǎng)關(guān)配置文件 測(cè)試 注意 Spring Cloud Gateway是一個(gè)反應(yīng)式API網(wǎng)關(guān),用于構(gòu)建和管理微服務(wù)架構(gòu)中的網(wǎng)關(guān)層。它通過一組過濾器(Filters)和路由(Routes)來處理傳入的HTTP請(qǐng)求,允許開發(fā)人員定義復(fù)雜的請(qǐng)求處理邏

    2024年02月11日
    瀏覽(16)
  • springcloud-gateway-2-鑒權(quán)

    springcloud-gateway-2-鑒權(quán)

    目錄 一、跨域安全設(shè)置 二、GlobalFilter實(shí)現(xiàn)全局的過濾與攔截。 三、GatewayFilter單個(gè)服務(wù)過濾器 1、原理-官方內(nèi)置過濾器 2、自定義過濾器-TokenAuthGatewayFilterFactory 3、完善TokenAuthGatewayFilterFactory的功能 4、每一個(gè)服務(wù)編寫一個(gè)或多個(gè)過濾器,實(shí)現(xiàn)鑒權(quán)的需要 四、總結(jié) 續(xù)前篇,介

    2024年02月03日
    瀏覽(22)
  • SpringCloud-Gateway網(wǎng)關(guān)的使用

    SpringCloud-Gateway網(wǎng)關(guān)的使用

    本文介紹如何再 SpringCloud 項(xiàng)目中引入 Gateway 網(wǎng)關(guān)并完成網(wǎng)關(guān)服務(wù)的調(diào)用。Gateway 網(wǎng)關(guān)是一個(gè)在微服務(wù)架構(gòu)中起到入口和路由控制的關(guān)鍵組件。它負(fù)責(zé)處理客戶端請(qǐng)求,進(jìn)行路由決策,并將請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的微服務(wù)。Gateway 網(wǎng)關(guān)還可以實(shí)現(xiàn)負(fù)載均衡、安全認(rèn)證、日志記錄等功能

    2024年02月22日
    瀏覽(18)
  • SpringCloud-Gateway實(shí)現(xiàn)RSA加解密

    SpringCloud-Gateway實(shí)現(xiàn)RSA加解密

    Gateway網(wǎng)關(guān)作為流量的入口,有的接口可能需要對(duì)請(qǐng)求內(nèi)容加密,返回結(jié)果加密,保證數(shù)據(jù)安全性。 一、RSA介紹 ????????RSA主要使用大整數(shù)分解這個(gè)數(shù)學(xué)難題進(jìn)行設(shè)計(jì),巧妙地利用了數(shù)論的概念。給了RSA公鑰,首先想到的攻擊就是分解模數(shù),給了的因子攻擊者可以計(jì)算得到

    2024年02月16日
    瀏覽(17)
  • springcloud-gateway升級(jí)版本allowedOrigins要改allowedOriginPatterns

    springcloud-gateway升級(jí)版本allowedOrigins要改allowedOriginPatterns

    前言 報(bào)錯(cuò): 原因:springboot升級(jí)2.6.0后所出現(xiàn)的問題 解決方法:將.allowedOrigins 替換成. allowedOriginPatterns 即可。 如下圖: ps:這是2.3時(shí)代的配置,現(xiàn)在不叫這個(gè)了,要用:

    2024年02月22日
    瀏覽(21)
  • springcloud-gateway集成knife4j

    springcloud-gateway集成knife4j

    springcloud-gateway集成knife4j(swagger2) 環(huán)境信息 準(zhǔn)備工作 微服務(wù)集成knife4j 第一步:編寫Knife4jApiInfoProperties 第二步:編寫配置類Knife4jConfig 第三步:放行相關(guān)資源 保證啟動(dòng)了knife4j 網(wǎng)關(guān)集成knife4j 編寫配置類Knife4jGatewayConfig 測(cè)試驗(yàn)證 相關(guān)資料 spring-boot:2.6.3 spring-cloud-alibaba:2

    2023年04月09日
    瀏覽(20)
  • springcloud gateway動(dòng)態(tài)路由

    動(dòng)態(tài)每秒調(diào)用數(shù)據(jù)庫,加載路由信息到路由定義(RouteDefinition)中 主要是繼承? RouteDefinitionRepository接口: 如果項(xiàng)目沒有自定義的RouteDefinitionRepository 則會(huì)加載InMemoryRouteDefinitionRepository 默認(rèn)將加載的規(guī)則存放在內(nèi)存,加載application.properties文件中配置的路由規(guī)則,InMemory加載內(nèi)

    2024年02月02日
    瀏覽(17)
  • springCloud之Gateway動(dòng)態(tài)路由

    ? ? ? ? 學(xué)習(xí)gateway網(wǎng)關(guān)時(shí),是以產(chǎn)品應(yīng)用為目的,打算做一個(gè)類似于SAAS平臺(tái),網(wǎng)關(guān)負(fù)責(zé)統(tǒng)一的鑒權(quán),日志記錄,對(duì)外屏蔽真實(shí)的訪問地址。路由信息也不能是寫死在配置文件的,必須是提供管理頁面可維護(hù)的。所以就略過配置文件,直接開啟動(dòng)態(tài)路由的實(shí)現(xiàn)。 一、gateway動(dòng)態(tài)

    2024年02月08日
    瀏覽(13)
  • Gateway基于Nacos動(dòng)態(tài)路由實(shí)現(xiàn)

    Gateway基于Nacos動(dòng)態(tài)路由實(shí)現(xiàn)

    客戶端請(qǐng)求,首先會(huì)被 Gateway Handler Mapping 處理,用以在? 路由表? 中查找一個(gè)與請(qǐng)求匹配的? 路由 , 然后將請(qǐng)求交由? Web Handler ?處理, Web Handler ?維護(hù)了一個(gè)過濾器鏈,鏈?zhǔn)綀?zhí)行這些過濾器,這些過濾器在邏輯上存在兩個(gè)執(zhí)行階段? pre ? 與? post ? Nacos 致力于幫助您發(fā)現(xiàn)

    2024年02月06日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包