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

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

這篇具有很好參考價(jià)值的文章主要介紹了Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、什么是網(wǎng)關(guān)限流:

????????在微服務(wù)架構(gòu)中,網(wǎng)關(guān)層可以屏蔽外部服務(wù)直接對(duì)內(nèi)部服務(wù)進(jìn)行調(diào)用,對(duì)內(nèi)部服務(wù)起到隔離保護(hù)的作用,網(wǎng)關(guān)限流,顧名思義,就是通過(guò)網(wǎng)關(guān)層對(duì)服務(wù)進(jìn)行限流,從而達(dá)到保護(hù)后端服務(wù)的作用。

????????Sentinel 從 1.6.0 版本開(kāi)始就提供了 Spring Cloud Gateway 的適配,可以提供兩種資源維度的限流:

  • route維度:即在配置文件中配置的路由條目,資源名為對(duì)應(yīng)的 routeId,這種屬于粗粒度的限流,一般是對(duì)某個(gè)微服務(wù)進(jìn)行限流。
  • 自定義API維度:用戶可以利用 Sentinel 提供的API來(lái)自定義一些API分組,這種屬于細(xì)粒度的限流,針對(duì)某一類的uri進(jìn)行匹配限流,可以跨多個(gè)微服務(wù)。

二、gateway 整合 sentinel 實(shí)現(xiàn)網(wǎng)關(guān)限流:

????????那么接下來(lái)我們就介紹下 spring cloud gateway 如何整合 sentinel,至于如何搭建網(wǎng)關(guān)項(xiàng)目和整合nacos注冊(cè)中心上篇文章我們已經(jīng)介紹過(guò)了,感興趣的讀者請(qǐng)閱讀這篇文章:Spring Cloud Gateway 服務(wù)網(wǎng)關(guān)的部署與使用詳細(xì)介紹

1、添加 sentinel 相關(guān)依賴:

 		<!-- 引入sentinel進(jìn)行服務(wù)降級(jí)熔斷 -->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
		</dependency>
		<!-- gateway網(wǎng)關(guān)整合sentinel進(jìn)行限流降級(jí) -->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
		</dependency>

2、配置文件中添加 sentinel 控制臺(tái)的配置:

# sentinel看板相關(guān)配置
spring.cloud.sentinel.eager = true
spring.cloud.sentinel.transport.dashboard = 172.28.190.101:8999

3、啟動(dòng)網(wǎng)關(guān)項(xiàng)目:

????????對(duì)于網(wǎng)關(guān)項(xiàng)目,我們需要在原啟動(dòng)參數(shù)的基礎(chǔ)上添加如下啟動(dòng)參數(shù),標(biāo)記該應(yīng)用為 API Gateway 類型:

# 注:通過(guò) Spring Cloud Alibaba Sentinel 自動(dòng)接入的 API Gateway 整合則無(wú)需此參數(shù)
-Dcsp.sentinel.app.type=1

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

4、訪問(wèn) sentinel 控制臺(tái):

??? ??? ?至此,我們就已經(jīng)將 Spring Cloud Gateway 與 Sentinel 整合好了,進(jìn)入 sentinel 控制臺(tái)就能夠看到網(wǎng)關(guān)項(xiàng)目被監(jiān)控了

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

三、sentinel 網(wǎng)關(guān)流控規(guī)則的介紹:

????????整合好 Spring Cloud Gateway 與 Sentinel 之后,接下來(lái)我們介紹下如何基于 sentinel-dashboard 控制臺(tái)進(jìn)行網(wǎng)關(guān)流控,如下圖所示:

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

?3.1、網(wǎng)關(guān)流控規(guī)則:

網(wǎng)關(guān)流控規(guī)則 GatewayFlowRule 的核心屬性如下:

① resourceMode:規(guī)則是針對(duì) API Gateway 的 route(RESOURCE_MODE_ROUTE_ID)還是用戶在 Sentinel 中定義的 API 分組(RESOURCE_MODE_CUSTOM_API_NAME),默認(rèn)是 route。

② resource:資源名稱,可以是網(wǎng)關(guān)中的 route 名稱或者用戶自定義的 API 分組名稱。

③ grade:限流指標(biāo)維度,同限流規(guī)則的 grade 字段

④ count:限流閾值

⑤ intervalSec:統(tǒng)計(jì)時(shí)間窗口,單位是秒,默認(rèn)是 1 秒

⑥ controlBehavior:流量整形的控制效果,目前支持快速失敗和勻速排隊(duì)兩種模式,默認(rèn)是快速失敗。

⑦ burst:應(yīng)對(duì)突發(fā)請(qǐng)求時(shí)額外允許的請(qǐng)求數(shù)目。

⑧ maxQueueingTimeoutMs:勻速排隊(duì)模式下的最長(zhǎng)排隊(duì)時(shí)間,單位是毫秒,僅在勻速排隊(duì)模式下生效。

⑨ paramItem:參數(shù)限流配置。若不提供,則代表不針對(duì)參數(shù)進(jìn)行限流,該網(wǎng)關(guān)規(guī)則將會(huì)被轉(zhuǎn)換成普通流控規(guī)則;否則會(huì)轉(zhuǎn)換成熱點(diǎn)規(guī)則。其中的字段:

  • parseStrategy:從請(qǐng)求中提取參數(shù)的策略,目前支持提取來(lái)源 IP(PARAM_PARSE_STRATEGY_CLIENT_IP)、Host(PARAM_PARSE_STRATEGY_HOST)、任意 Header(PARAM_PARSE_STRATEGY_HEADER)和任意 URL 參數(shù)(PARAM_PARSE_STRATEGY_URL_PARAM)四種模式。
  • fieldName:若提取策略選擇 Header 模式或 URL 參數(shù)模式,則需要指定對(duì)應(yīng)的 header 名稱或 URL 參數(shù)名稱。
  • pattern:參數(shù)值的匹配模式,只有匹配該模式的請(qǐng)求屬性值會(huì)納入統(tǒng)計(jì)和流控;若為空則統(tǒng)計(jì)該請(qǐng)求屬性的所有值。
  • matchStrategy:參數(shù)值的匹配策略,目前支持精確匹配(PARAM_MATCH_STRATEGY_EXACT)、子串匹配(PARAM_MATCH_STRATEGY_CONTAINS)和正則匹配(PARAM_MATCH_STRATEGY_REGEX)。

3.2、API 分組管理:

API 分組就是對(duì)接口進(jìn)行分組,然后對(duì)不同組的接口實(shí)施不同的限流策略。

(1)添加API分組:

如下圖,按指定步驟進(jìn)入自定義API界面:

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

?API 分組有三種配置模式:精確、前綴和正則三種模式。

  • 精確模式:指對(duì)URL的路徑完全匹配時(shí),進(jìn)行限流。例如,匹配串配置為 /order/1
  • 前綴模式:指對(duì)URL的路徑前綴匹配時(shí),進(jìn)行限流。例如,匹配串配置為 /order/*
  • 正則模式:指對(duì)URL的路徑符合正則表示式規(guī)則時(shí),進(jìn)行限流。例如,匹配串配置為 \/order\/\d*

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

?(2)配置限流規(guī)則:

接下來(lái)需要對(duì)這個(gè)API分組添加流控規(guī)則,API名稱可以選擇不同的API分組進(jìn)行配置,如下圖所示:

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

新增之后,限流規(guī)則就會(huì)對(duì)符合匹配模式的 API 生效了。 ?

四、sentinel 網(wǎng)關(guān)流控實(shí)現(xiàn)的原理:

????????知道如何使用 sentinel-dashboard 對(duì)網(wǎng)關(guān)進(jìn)行流控之后,我們接下來(lái)介紹 sentinel 網(wǎng)關(guān)流控的實(shí)現(xiàn)原理。

????????當(dāng)通過(guò) GatewayRuleManager 加載網(wǎng)關(guān)流控規(guī)則(GatewayFlowRule)時(shí),無(wú)論是否針對(duì)請(qǐng)求屬性進(jìn)行限流,Sentinel 底層都會(huì)將網(wǎng)關(guān)流控規(guī)則轉(zhuǎn)化為熱點(diǎn)參數(shù)規(guī)則(ParamFlowRule),存儲(chǔ)在 GatewayRuleManager 中,與正常的熱點(diǎn)參數(shù)規(guī)則相隔離。轉(zhuǎn)換時(shí) Sentinel 會(huì)根據(jù)請(qǐng)求屬性配置,為網(wǎng)關(guān)流控規(guī)則設(shè)置參數(shù)索引(idx),并同步到生成的熱點(diǎn)參數(shù)規(guī)則中。

????????外部請(qǐng)求進(jìn)入 API Gateway 時(shí)會(huì)經(jīng)過(guò) Sentinel 實(shí)現(xiàn)的 filter,其中會(huì)依次進(jìn)行 “路由/API 分組匹配 -> 請(qǐng)求屬性解析 和 參數(shù)組裝"。Sentinel 會(huì)根據(jù)配置的網(wǎng)關(guān)流控規(guī)則來(lái)解析請(qǐng)求屬性,并依照參數(shù)索引順序組裝參數(shù)數(shù)組,最終傳入 SphU.entry(res, args) 中。Sentinel API Gateway Adapter Common 模塊向 Slot Chain 中添加了一個(gè) GatewayFlowSlot,專門(mén)用來(lái)做網(wǎng)關(guān)規(guī)則的檢查。GatewayFlowSlot 會(huì)從 GatewayRuleManager 中提取生成的熱點(diǎn)參數(shù)規(guī)則,根據(jù)傳入的參數(shù)依次進(jìn)行規(guī)則檢查。若某條規(guī)則不針對(duì)請(qǐng)求屬性,則會(huì)在參數(shù)最后一個(gè)位置置入預(yù)設(shè)的常量,達(dá)到普通流控的效果。

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

五、網(wǎng)關(guān)限流了,服務(wù)就安全了嗎?

??? ??? ?如果已經(jīng)在網(wǎng)關(guān)層面做了限流,那么躲在身后的服務(wù)是否就安全了呢?答案是否定的,微服務(wù)架構(gòu)中,一個(gè)獨(dú)立服務(wù)往往會(huì)被多方調(diào)用,如下圖:

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

????????商品服務(wù)不僅僅被網(wǎng)關(guān)層調(diào)用,還被內(nèi)部訂單服務(wù)調(diào)用,這時(shí)候如果僅僅在網(wǎng)關(guān)層限流,一旦大量的請(qǐng)求訂單服務(wù),比如大促秒殺,商品服務(wù)不做限流還是會(huì)被瞬間擊垮。因此需要根據(jù)公司業(yè)務(wù)場(chǎng)景對(duì)自己負(fù)責(zé)的服務(wù)也要進(jìn)行限流兜底,最常見(jiàn)的方案:網(wǎng)關(guān)層集群限流+內(nèi)部服務(wù)的單機(jī)限流兜底,這樣才能保證不被流量沖垮。

六、自定義流控異常消息:

????????網(wǎng)關(guān)流控的默認(rèn)異常返回信息并不夠人性化,直接返回:“Block.........”,這種肯定是不能接受的,那么我們?nèi)绾巫远x配置流控異常信息呢?其實(shí) sentinel 已經(jīng)為我們實(shí)現(xiàn)了自定義流控異常的返回內(nèi)容。只需要在配置文件中添加配置如下:

spring:
  cloud:
    sentinel:
      #配置限流之后的響應(yīng)內(nèi)容
      scg:  
        fallback:
          # 兩種模式:一種是response返回文字提示信息,一種是redirect,重定向跳轉(zhuǎn),需要同時(shí)配置redirect(跳轉(zhuǎn)的uri)
          mode: response
          # 響應(yīng)的狀態(tài)
          response-status: 426
          # 響應(yīng)體
          response-body: '{"code": 426,"message": "限流了,稍后重試!"}'

上述配置中 mode 配置的是 response,一旦被限流了,將會(huì)返回 JSON 串。

{
    "code": 426,
    "message": "限流了,稍后重試!"
}

重定向的配置如下:

spring:
  cloud:
    sentinel:
      #配置限流之后的響應(yīng)內(nèi)容
      scg:
        fallback:
          ## 兩種模式,一種是response返回文字提示信息,一種是redirect,重定向跳轉(zhuǎn),需要同時(shí)配置redirect(跳轉(zhuǎn)的uri)
          mode: redirect
          ## 跳轉(zhuǎn)的URL
          redirect: http://www.baidu.com

一旦被限流,將會(huì)直接跳轉(zhuǎn)到:http://www.baidu.com?


相關(guān)閱讀:

常見(jiàn)的服務(wù)器架構(gòu)入門(mén):從單體架構(gòu)、EAI 到 SOA 再到微服務(wù)和 ServiceMesh

常見(jiàn)分布式理論(CAP、BASE)和一致性協(xié)議(Gosssip協(xié)議、Raft一致性算法)

一致性哈希算法原理詳解

Nacos注冊(cè)中心的部署與用法詳細(xì)介紹

Nacos配置中心用法詳細(xì)介紹

SpringCloud OpenFeign 遠(yuǎn)程HTTP服務(wù)調(diào)用用法與原理

什么是RPC?RPC框架dubbo的核心流程

服務(wù)容錯(cuò)設(shè)計(jì):流量控制、服務(wù)熔斷、服務(wù)降級(jí)

sentinel 限流熔斷神器詳細(xì)介紹

Sentinel 規(guī)則持久化到 apollo 配置中心

Sentinel-Dashboard 與 apollo 規(guī)則的相互同步

Spring Cloud Gateway 服務(wù)網(wǎng)關(guān)的部署與使用詳細(xì)介紹

Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷

Spring Cloud Gateway 整合 knife4j 聚合接口文檔

常見(jiàn)分布式事務(wù)詳解(2PC、3PC、TCC、Saga、本地事務(wù)表、MQ事務(wù)消息、最大努力通知)

分布式事務(wù)Seata原理

RocketMQ事務(wù)消息原理


參考文章:

Spring Cloud Gateway 整合阿里 Sentinel網(wǎng)關(guān)限流實(shí)戰(zhàn)!

網(wǎng)關(guān)限流 · alibaba/Sentinel Wiki · GitHub

Sentinel Gateway Nacos 網(wǎng)關(guān)限流三劍客 - 云+社區(qū) - 騰訊云文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-422097.html

到了這里,關(guān)于Spring Cloud Gateway 整合 sentinel 實(shí)現(xiàn)流控熔斷的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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.04.熔斷器Hystrix( Spring Cloud Alibaba 熔斷(Sentinel))

    SpringCloud.04.熔斷器Hystrix( Spring Cloud Alibaba 熔斷(Sentinel))

    目錄 熔斷器概述 使用Sentinel工具 什么是Sentinel 微服務(wù)集成Sentinel 配置provider文件,在里面加入有關(guān)控制臺(tái)的配置 實(shí)現(xiàn)一個(gè)接口的限流 基本概念 重要功能 Sentinel規(guī)則 流控規(guī)則 簡(jiǎn)單配置 配置流控模式 配置流控效果 降級(jí)規(guī)則 @SentinelResource的使用 Feign整合Sentinel 由于Hystrix已經(jīng)停

    2024年01月19日
    瀏覽(28)
  • 【SpringCloud】11、Spring Cloud Gateway使用Sentinel實(shí)現(xiàn)服務(wù)限流

    1、關(guān)于 Sentinel Sentinel 是阿里巴巴開(kāi)源的一個(gè)流量防衛(wèi)防護(hù)組件,可以為微服務(wù)架構(gòu)提供強(qiáng)大的流量防衛(wèi)能力,包括流量控制、熔斷降級(jí)等功能。Spring Cloud Gateway 與 Sentinel 結(jié)合,可以實(shí)現(xiàn)強(qiáng)大的限流功能。 Sentinel 具有以下特性: 豐富的應(yīng)用場(chǎng)景:Sentinel 承接了阿里巴巴近

    2024年02月01日
    瀏覽(23)
  • 【Spring Cloud Alibaba】Sentinel 服務(wù)熔斷與流量控制

    【Spring Cloud Alibaba】Sentinel 服務(wù)熔斷與流量控制

    目錄 前言 一、Sentinel 入門(mén) 1.1 什么是 Sentinel ? 1.2 微服務(wù)集成 Sentinel ?1.3 安裝Sentinel控制臺(tái) 二、Jmeter 壓力測(cè)試工具 2.1 Jmeter 介紹? 2.2 Jmeter 安裝 2.3 接口測(cè)試 三、Sentinel 使用 3.1 限流規(guī)則 3.1.1 warm up(預(yù)熱模式) 3.1.2?排隊(duì)等待 3.1.3 關(guān)聯(lián) 3.1.4 鏈路 3.2 熔斷規(guī)則 3.3 服務(wù)降級(jí) ????

    2024年02月01日
    瀏覽(28)
  • 【Spring Cloud】Sentinel流量限流和熔斷降級(jí)的講解

    【Spring Cloud】Sentinel流量限流和熔斷降級(jí)的講解

    ????歡迎來(lái)到我的CSDN主頁(yè)!???? ??我是Java方文山,一個(gè)在CSDN分享筆記的博主。???? ??推薦給大家我的專欄《Spring Cloud》。???? ??點(diǎn)擊這里,就可以查看我的主頁(yè)啦!???? Java方文山的個(gè)人主頁(yè) ??如果感覺(jué)還不錯(cuò)的話請(qǐng)給我點(diǎn)贊吧!???? ??期待你的加入,一起

    2024年01月23日
    瀏覽(24)
  • Spring Cloud Sentinel整合Nacos實(shí)現(xiàn)配置持久化

    Spring Cloud Sentinel整合Nacos實(shí)現(xiàn)配置持久化

    sentinel配置相關(guān)配置后無(wú)法持久化,服務(wù)重啟之后就沒(méi)了,所以整合nacos,在nacos服務(wù)持久化,sentinel實(shí)時(shí)與nacos通信獲取相關(guān)配置。 使用上一章節(jié)Feign消費(fèi)者服務(wù)實(shí)現(xiàn)整合。 版本信息: nacos:1.4.1 Sentinel 控制臺(tái) 1.7.2 spring-boot:2.3.3.RELEASE spring.cloud.version:Hoxton.SR8 spring.cloud.alibaba.v

    2024年02月08日
    瀏覽(23)
  • 【Spring Cloud Alibaba】7.Sentinel熔斷器儀表盤(pán)監(jiān)控

    【Spring Cloud Alibaba】7.Sentinel熔斷器儀表盤(pán)監(jiān)控

    接下來(lái)我們通過(guò) Sentinel 控制臺(tái)來(lái)實(shí)現(xiàn)對(duì)服務(wù)消費(fèi)者提供的熔斷機(jī)制進(jìn)行監(jiān)控和控制,本操作先要完成之前的步驟,詳情請(qǐng)參照【Spring Cloud Alibaba】Spring Cloud Alibaba 搭建教程 Sentinel 提供一個(gè)輕量級(jí)的開(kāi)源控制臺(tái),它提供機(jī)器發(fā)現(xiàn)以及健康情況管理、監(jiān)控(單機(jī)和集群),規(guī)則管

    2023年04月08日
    瀏覽(22)
  • SpringCloud學(xué)習(xí)6(Spring Cloud Alibaba)斷路器Sentinel熔斷降級(jí)

    SpringCloud學(xué)習(xí)6(Spring Cloud Alibaba)斷路器Sentinel熔斷降級(jí)

    SpringCloud、SpringCloudAlibaba、SpringBoot版本選擇。為了避免各種千奇百怪的bug,我們還是采用官方推薦的畢業(yè)版本。 修改tomcat配置最大線程數(shù) 引入測(cè)試依賴 編寫(xiě)測(cè)試代碼 這里同時(shí)我們?cè)跒g覽器去請(qǐng)求該地址,響應(yīng)會(huì)變得很慢 測(cè)試結(jié)論:此時(shí)會(huì)發(fā)現(xiàn)由于thread接口囤積大量請(qǐng)求,

    2023年04月08日
    瀏覽(31)
  • Spring Cloud實(shí)戰(zhàn) |分布式系統(tǒng)的流量控制、熔斷降級(jí)組件Sentinel如何使用

    Spring Cloud實(shí)戰(zhàn) |分布式系統(tǒng)的流量控制、熔斷降級(jí)組件Sentinel如何使用

    專欄集錦,大佬們可以收藏以備不時(shí)之需 Spring Cloud實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html Python 實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow專欄:https://blog.csdn.net/superdangbo/category_869

    2024年02月04日
    瀏覽(34)
  • Spring Cloud Gateway 整合OAuth2.0 實(shí)現(xiàn)統(tǒng)一認(rèn)證授權(quán)

    Spring Cloud Gateway 整合OAuth2.0 實(shí)現(xiàn)統(tǒng)一認(rèn)證授權(quán) GateWay——向其他服務(wù)傳遞參數(shù)數(shù)據(jù) https://blog.csdn.net/qq_38322527/article/details/126530849 @EnableAuthorizationServer Oauth2ServerConfig 驗(yàn)證簽名 網(wǎng)關(guān)服務(wù)需要RSA的公鑰來(lái)驗(yàn)證簽名是否合法,所以認(rèn)證服務(wù)需要有個(gè)接口把公鑰暴露出來(lái) 接下來(lái)搭建網(wǎng)

    2024年02月13日
    瀏覽(22)
  • Spring Cloud Gateway集成Sentinel 1.8.6及Sentinel Dashboard

    Spring Cloud Gateway集成Sentinel 1.8.6及Sentinel Dashboard

    一、安裝sentinel 1.下載地址:sentinel v1.8.6 2.啟動(dòng)sentinel dashboard,執(zhí)行以下命令: java -Dcsp.sentinel.log.dir=D:xxxsentinellogs -Dserver.port=9217 -Dcsp.sentinel.dashboard.server=localhost:9217 -Dcsp.sentinel.heartbeat.client.ip=localhost -Dproject.name=sentinel-dashboard -Dsentinel.dashboard.auth.username=sentinel -Dsentinel.dashboar

    2024年02月11日
    瀏覽(15)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包