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

Spring Cloud 微服務(wù)中 gateway 網(wǎng)關(guān)如何設(shè)置健康檢測(cè)端點(diǎn)

這篇具有很好參考價(jià)值的文章主要介紹了Spring Cloud 微服務(wù)中 gateway 網(wǎng)關(guān)如何設(shè)置健康檢測(cè)端點(diǎn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

主要是為了讓 k8s 識(shí)別到網(wǎng)關(guān)項(xiàng)目已經(jīng)就緒,但是又不想在里面通過 Controller 實(shí)現(xiàn)。因?yàn)樵?Controller 中這樣做并不是最佳實(shí)踐,因?yàn)?Gateway 的設(shè)計(jì)初衷是專注于路由和過濾,而不是業(yè)務(wù)邏輯的處理。

Gateway 中配置健康檢查端點(diǎn)可以通過以下方式進(jìn)行(可根據(jù)實(shí)際需求進(jìn)行擴(kuò)展):

1. 自定義路由配置(推薦)

可以使用 Spring Cloud Gateway 的 Java DSL 配置自定義的路由,以在網(wǎng)關(guān)中添加一個(gè)專門用于健康檢查的路由。例如:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.ServerResponse;

import static org.springframework.web.reactive.function.server.RequestPredicates.*;

@Configuration
public class GatewayConfig {

    @Bean
    public RouterFunction<ServerResponse> healthCheckRoute() {
        return route(GET("/health-check"),
                request -> ServerResponse.status(HttpStatus.OK)
                        .body(BodyInserters.fromValue("Gateway is healthy")));
    }
}

這樣,就可以通過訪問 http://localhost:8080/health-check 來執(zhí)行健康檢查。

上面代碼的描述說明:

  • route 方法是 Spring Cloud Gateway 提供的 Java DSL(領(lǐng)域特定語言,Domain-Specific Language)中的一部分。這是一種聲明性的路由配置方式,允許使用流暢的 API 配置路由規(guī)則。
  • GatewayConfig 類中,healthCheckRoute 方法返回一個(gè) RouterFunction<ServerResponse>,這個(gè)函數(shù)式接口是用來配置路由規(guī)則的。route 方法是用于創(chuàng)建路由規(guī)則的,它接收一個(gè)請(qǐng)求謂詞(RequestPredicate)和一個(gè)處理函數(shù)(HandlerFunction)作為參數(shù)。
  • 具體來說,route(GET("/health-check"), ...) 表示創(chuàng)建一個(gè)滿足 GET 請(qǐng)求謂詞,并且路徑為 /health-check 的路由規(guī)則。接著,通過 ServerResponse 構(gòu)建響應(yīng),這里設(shè)置為 HTTP 狀態(tài)碼 HttpStatus.OK,并返回一條消息 “Gateway is healthy”。

這種方式更加直觀和類型安全,相比于配置文件,可以在代碼中清晰地看到路由規(guī)則的定義。這是 Spring WebFlux 框架提供的一種路由方式,用于構(gòu)建響應(yīng)式的、非阻塞的 Web 應(yīng)用程序。

2. 利用 Actuator 健康檢查

可以通過配置屬性來啟用 Actuator,并將其端口設(shè)置為用于健康檢查的端口。

要想使用 Actuator,項(xiàng)目中需要引入 Actuator 的依賴:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.propertiesapplication.yml 配置文件中添加以下配置:

# application.properties
management.endpoints.web.exposure.include=health
management.server.port=8081  # 可與 server.port 相同或不同

或者

# application.yaml
management:
  endpoints:
    web:
      exposure:
        include: health
  server:
    port: 8081  # 可與 server.port 相同或不同

上述配置將 Actuator 暴露的端點(diǎn)配置為僅包含 health,并將健康檢查端口設(shè)置為 8081。此時(shí),可以通過訪問 http://localhost:8081/actuator/health 來執(zhí)行健康檢查。

【注】Actuator 中還有其他配置,實(shí)際使用過程中建議查看 官方文檔 了解相應(yīng)的配置,以免給自己挖坑。比如 /env/beans,它們可能會(huì)泄漏應(yīng)用程序的敏感信息。確保只在受信任的環(huán)境中啟用這些端點(diǎn),并謹(jǐn)慎處理它們的輸出。

3. 通過 RestController 實(shí)現(xiàn)(不推薦)

如果有業(yè)務(wù)邏輯需要處理,更推薦將業(yè)務(wù)邏輯集中在后端微服務(wù)中,而將 Gateway 專注于路由和過濾。這樣可以更好地保持清晰的代碼結(jié)構(gòu)和單一責(zé)任原則。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * @author roc
 * @date 2024/1/16 14:14
 */
@RestController
@RequestMapping("/health")
public class HealthController {

    @GetMapping("/check")
    public String check() {
        return "Gateway is healthy";
    }
}

如果還有其他方式請(qǐng)大佬們分享一下。

Spring Cloud 微服務(wù)中 gateway 網(wǎng)關(guān)如何設(shè)置健康檢測(cè)端點(diǎn),# SpringCloud,# SpringBoot,spring cloud,微服務(wù),gateway
個(gè)人博客:Roc’s Blog文章來源地址http://www.zghlxwxcb.cn/news/detail-797822.html

到了這里,關(guān)于Spring Cloud 微服務(wù)中 gateway 網(wǎng)關(guān)如何設(shè)置健康檢測(cè)端點(diǎ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)文章

  • 微服務(wù)網(wǎng)關(guān):Spring Cloud Zuul 升級(jí) Spring Cloud Gateway 的核心要點(diǎn)

    微服務(wù)網(wǎng)關(guān):Spring Cloud Zuul 升級(jí) Spring Cloud Gateway 的核心要點(diǎn)

    在routes路由規(guī)則中,根據(jù)path去匹配,如果匹配中,就使用對(duì)應(yīng)的路由規(guī)則進(jìn)行請(qǐng)求轉(zhuǎn)發(fā) 如果無法從routes中匹配,則根據(jù)path用“/”去截取第一段作為服務(wù)名進(jìn)行請(qǐng)求轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)時(shí),默認(rèn)將第一段截取調(diào) 如果截取的服務(wù)名不在注冊(cè)中心中存在服務(wù),則報(bào)錯(cuò)404 在routes路由規(guī)則中

    2024年02月07日
    瀏覽(27)
  • Eureka上集成Spring Cloud 微服務(wù)網(wǎng)關(guān) gateway

    Eureka上集成Spring Cloud 微服務(wù)網(wǎng)關(guān) gateway

    第一章 Java線程池技術(shù)應(yīng)用 第二章 CountDownLatch和Semaphone的應(yīng)用 第三章 Spring Cloud 簡(jiǎn)介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay API 網(wǎng)關(guān)是一個(gè)搭建在客戶端和微服務(wù)之間的服務(wù),我們可以在 API 網(wǎng)關(guān)中

    2024年02月08日
    瀏覽(23)
  • 【springcloud 微服務(wù)】Spring Cloud 微服務(wù)網(wǎng)關(guān)Gateway使用詳解

    目錄 一、微服務(wù)網(wǎng)關(guān)簡(jiǎn)介 1.1 網(wǎng)關(guān)的作用 1.2 常用網(wǎng)關(guān) 1.2.1 傳統(tǒng)網(wǎng)關(guān) 1.2.2?云原生網(wǎng)關(guān)

    2023年04月16日
    瀏覽(31)
  • Spring Cloud Gateway 服務(wù)網(wǎng)關(guān)的部署與使用詳細(xì)介紹

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

    1、什么是服務(wù)網(wǎng)關(guān): ????????傳統(tǒng)的單體架構(gòu)中只需要開放一個(gè)服務(wù)給客戶端調(diào)用,但是微服務(wù)架構(gòu)中是將一個(gè)系統(tǒng)拆分成多個(gè)微服務(wù),如果沒有網(wǎng)關(guān),客戶端只能在本地記錄每個(gè)微服務(wù)的調(diào)用地址,當(dāng)需要調(diào)用的微服務(wù)數(shù)量很多時(shí),它需要了解每個(gè)服務(wù)的接口,這個(gè)工

    2024年02月02日
    瀏覽(27)
  • Spring Cloud Gateway:打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)

    Spring Cloud Gateway:打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)

    ??歡迎來到架構(gòu)設(shè)計(jì)專欄~Spring Cloud Gateway:打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān) ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計(jì) ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限

    2024年02月08日
    瀏覽(92)
  • Spring Cloud Gateway - 新一代微服務(wù)API網(wǎng)關(guān)

    Spring Cloud Gateway - 新一代微服務(wù)API網(wǎng)關(guān)

    如果沒有網(wǎng)關(guān),難道不行嗎?功能上是可以的,我們直接調(diào)用提供的接口就可以了。那為什么還需要網(wǎng)關(guān)? 因?yàn)榫W(wǎng)關(guān)的作用不僅僅是轉(zhuǎn)發(fā)請(qǐng)求而已。我們可以試想一下,如果需要做一個(gè)請(qǐng)求認(rèn)證功能,我們可以接入到 API 服務(wù)中。但是倘若后續(xù)又有服務(wù)需要接入,我們又需要

    2024年02月16日
    瀏覽(28)
  • Spring Cloud Alibaba全家桶(十)——微服務(wù)網(wǎng)關(guān)Gateway組件

    Spring Cloud Alibaba全家桶(十)——微服務(wù)網(wǎng)關(guān)Gateway組件

    本文小新為大家?guī)?微服務(wù)網(wǎng)關(guān)Gateway組件 相關(guān)知識(shí),具體內(nèi)容包括 微服務(wù)網(wǎng)關(guān)Gateway組件 (包括: Gateway核心概念 , Gateway工作原理 ), Spring Cloud Gateway環(huán)境搭建 , 路由斷言工廠(Route Predicate Factories)配置 , 過濾器工廠( Gateway Filter Factories)配置 , 全局過濾器(Glob

    2023年04月08日
    瀏覽(21)
  • 【使用Spring Cloud Gateway構(gòu)建微服務(wù)網(wǎng)關(guān)】—— 每天一點(diǎn)小知識(shí)

    【使用Spring Cloud Gateway構(gòu)建微服務(wù)網(wǎng)關(guān)】—— 每天一點(diǎn)小知識(shí)

    · ??????????????????????????????????????????????????????????????????????? ?? 使用 S p r i n g C l o u d G a t e w a y 構(gòu)建微服務(wù)網(wǎng)關(guān) color{#FF1493}{使用Spring Cloud Gateway構(gòu)建微服務(wù)網(wǎng)關(guān)} 使用 Sp r in g Cl o u d G a t e w a y 構(gòu)建微服務(wù)網(wǎng)關(guān) ?? ???????

    2024年02月10日
    瀏覽(43)
  • Java之SpringCloud Alibaba【七】【Spring Cloud微服務(wù)網(wǎng)關(guān)Gateway組件】

    Java之SpringCloud Alibaba【七】【Spring Cloud微服務(wù)網(wǎng)關(guān)Gateway組件】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳轉(zhuǎn) Java之SpringCloud Alibaba【二】【微服務(wù)調(diào)用組件Feign】 跳轉(zhuǎn) Java之SpringCloud Alibaba【三】【微服務(wù)Nacos-config配置中心】 跳轉(zhuǎn) Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】 跳轉(zhuǎn) Java之SpringCloud Alibaba【五】【微服務(wù)

    2024年02月06日
    瀏覽(34)
  • Spring Cloud Gateway:新一代微服務(wù) API 網(wǎng)關(guān),用起來真優(yōu)雅!

    Spring Cloud Gateway:新一代微服務(wù) API 網(wǎng)關(guān),用起來真優(yōu)雅!

    如果沒有網(wǎng)關(guān),難道不行嗎?功能上是可以的,我們直接調(diào)用提供的接口就可以了。那為什么還需要網(wǎng)關(guān)? 因?yàn)榫W(wǎng)關(guān)的作用不僅僅是轉(zhuǎn)發(fā)請(qǐng)求而已。我們可以試想一下,如果需要做一個(gè)請(qǐng)求認(rèn)證功能,我們可以接入到 API 服務(wù)中。但是倘若后續(xù)又有服務(wù)需要接入,我們又需要

    2024年02月09日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包