限流系列之五:TDMQ RabbitMQ Serverless 版限流機制深度解析與實踐指南

導語

分布式集群限流是保障云服務高可用性的核心技術手段,其意義不僅在于防止系統過載,更是構建彈性架構、優化資源效率、實現業務可持續性的關鍵策略。未來,隨著邊緣計算和 Serverless 的普及,限流技術將進一步與底層基礎設施深度融合,成為構建下一代高可用架構的核心基石。

騰訊云 TDMQ RabbitMQ Serverless 版作為一款極致彈性、高性能且高可靠的消息中間件,通過提供穩定低延遲的消息服務,助力企業實現系統異步解耦并高效應對海量消息堆積。然而,在高并發、大流量的實際業務中,如何科學分配資源、規避系統過載風險,已成為保障服務穩定性的關鍵。為此,騰訊云 TDMQ RabbitMQ Serverless 版引入了集群級別的分布式限流機制,通過動態調控集群的發送與消費速率,確保集群在高負載下仍能穩定運行。

本文將深度剖析騰訊云 TDMQ RabbitMQ Serverless 版的限流機制,涵蓋限流策略設計、觸發機制及底層實現邏輯。通過真實場景案例解析與實踐指南,系統講解如何通過客戶端優化來降低限流影響,同時幫助客戶精準掌握集群限流相關服務端配置技巧,有效規避因流控策略不當引發的業務中斷風險,全面提升高并發場景下的系統穩定性與可靠性。

概要設計

分布式限流的必要性

資源瓶頸的不可預測性

在分布式系統中,單節點流量可能因負載均衡策略(如 Round-Robin)不均導致傾斜。例如,某臺服務器因硬件故障觸發重試風暴,流量突增300%,若無全局視角的限流,可能引發級聯雪崩。

長尾延遲的放大效應

當某服務節點響應延遲升高(如磁盤刷寫延遲增大),后續請求堆積導致線程池耗盡,觸發上游重試,形成惡性循環。

突發流量沖擊

秒殺活動、熱點新聞等場景下,流量可能在毫秒級陡增數十倍。例如,某電商平臺大促期間,訂單服務 QPS 從5k飆升至80k,若未通過分布式限流攔截異常流量,核心計算資源將被瞬間打滿,導致服務不可用。

TDMQ RabbitMQ Serverless 版限流規則

騰訊云 TDMQ RabbitMQ Serverless 版為超大規模、低時延、高可用性要求的在線業務提供專業級消息服務。客戶端通過 RabbitMQ SDK 與 TDMQ RabbitMQ Serverless 版集群建立長連接,實現高效的消息收發操作,同時動態占用集群的計算、存儲及網絡帶寬等關鍵資源。在此背景下,為確保消息服務的高性能與穩定性,在應對高并發、大流量場景時,必須對集群的負載水位進行精細化管理。 基于集群的資源配置上限,服務端支持動態調控客戶端的每秒消息發送與消費能力(TPS),確保系統在高負載下依然保持穩定運行。

為實現資源隔離與靈活適配的雙重目標,系統對發送消息與消費消息的 TPS 配額進行獨立分配,并支持用戶按需配置配額比例,從而實現精細化資源管理與業務場景的精準匹配(默認配額比例為1 : 1 也即50%)。業務可以根據實際的收發比例進行調整,可調整的收發消息比例范圍在20%-80%(服務端支持動態調整該區間)之間。

TDMQ RabbitMQ Serverless 版限流行為

騰訊云 TDMQ RabbitMQ Serverless 版采用 Fail-Fast 限流機制,即當客戶端請求速率觸及預設上限時,服務端會即時返回錯誤響應。在響應時間敏感的在線業務場景中,該機制可使客戶端實時感知限流事件并主動介入處理,從而有效避免因資源競爭導致的端到端時延長尾,保障業務連續性與系統穩定性。

以 1000TPS 規格的基礎集群為例(假設收發 TPS 比例為1:1 也即50%),客戶端視角下的限流行為:

說明發送消息限流消費消息限流
觸發限流情景所有連接該集群的發送客戶端每秒最多可發送 TPS 總和為 500 條,發送速率達到限制后,超限的發送請求會失敗。所有連接該集群的消費客戶端每秒最多可消費 TPS 總和為 500 條,消費速率達到限制后,消息的消費延遲會增加。
觸發限流時 SDK 日志關鍵詞com.rabbitmq.client.AlreadyClosedException: channel is already closed due to channel error; protocol method: #method<channel.close>(reply-code=530, reply-text=[requestId: 3143682333552716694] Action: pub rate limited by cluster on instance:xxx reason:PublishMessage, class-id=60, method-id=40)消費超過閾值以后,客戶端使用 BasicGet 拉取消息時,會出現:com.rabbitmq.client.AlreadyClosedException: channel is already closed due to channel error; protocol method: #method<channel.close>(reply-code=530, reply-text=[requestId: 31436823332424324] Action: BasicGet rate limited by cluster rate limiter vhost: xxx. queue: xxx.當客戶端使用 BasicConsume 消費消息時,服務端會抑制向客戶端 DeliverMessage 的速率,客戶端不會感知到明顯的 Channel 斷開的錯誤,整體表現為類似 AMQP 協議消費者 QOS 的行為,會抑制推送到消費者消息的速率,此時消費延遲會增加,可以通過調整限流比例或者增大購買的 TPS 來解決。消費的總 TPS 主要由 BasicGet 和 DeliverMessage 的調用 TPS 次數共享。
觸發限流時 SDK 重試機制客戶端 SDK 業務側需要處理連接斷開的行為,需要對發送錯誤被限流的消息重新建立 Channel 連接然后進行發送重試。客戶端 SDK 業務消費側會感知到延遲增加。若使用拉取 BasicGet 拉取消息,會感知到 Channel 連接斷開,需要業務上主動重試。

詳細設計與實現

架構設計

騰訊云 TDMQ RabbitMQ Serverless 版采用雙模式限流架構,兼顧節點級保護與集群級協同:

單機限流(Node-Level Throttling)

用于節點級資源保護,通過限制 CPU、內存、線程等關鍵資源的使用,防止單節點因過載導致服務不可用。

分布式限流(Cluster-Level Throttling)

基于集群全局視角,通過多節點流量協同管理,保護共享存儲資源(如 Broker)及后端系統穩定性。該模式通過使用分布式限流系統實現。

限流實現

騰訊云 TDMQ RabbitMQ Serverless 版通過在計算層 (TDMQ RabbitMQ Serverless 版集群)接入分布式限流系統實現集群級讀寫流量控制,其核心機制是:TDMQ RabbitMQ Serverless 版集群節點在處理 BasicPublish / BasicGet / DeliverMessage 請求前,需通過集成的限流 SDK 向限流 Server 異步上報與申請 Token。

生產端限流:若 BasicPublish 申請失敗,則立即拒絕生產消息請求并返回錯誤。
消費端限流:若 BasicGet 申請失敗,則立即拒絕拉取消息請求并返回錯誤。若 DeliverMessage 申請失敗,則抑制推送到消費者的消息速率,實現消費端不斷連接的流控,此時類似于 RabbitMQ 開源的實現,此時該消費者處于 Flow 狀態。

TDMQ RabbitMQ Serverless 版集群內部集成限流 SDK,該 SDK 提供 Token 申請 API,并負責與限流 Server 通信,通過這種集中式 Token 管理實現對核心存儲層 (底座 Broker 集群) 的保護。

限流實現難點一:如何平衡性能與精度

使用 TDMQ RabbitMQ Serverless 版的各類在線業務通常對時延比較敏感,如果計算層節點處理每次讀寫請求都執行一次 Limiter RPC 調用(SDK -> Server)的話,雖然 Limiter Server 內部處理耗時幾乎可以忽略,但兩次 RPC 的網絡 IO 耗時對消息端到端時延的影響是不能忽視的。

實際上從服務端的角度看, TDMQ RabbitMQ Serverless 版執行限流的主要目的是防止核心存儲層過載,而非追求 100% 精準的流量控制,即 SDK 與 Server 之間的強同步并不是必須的。因此,為了在限流性能和限流精度之間取得平衡,Limiter 采用了一種【先消費后結算】的 Token 管理機制,Token 申請過程在限流 SDK 內部閉環,SDK 會周期性(周期大概在50ms以內,上報周期越短,限流越敏感)地向限流 Server 異步上報 Token 使用量并同步配額。

騰訊云 TDMQ RabbitMQ Serverless 版的限流機制通過以下四大核心特性,在保障系統穩定性的同時實現高性能與低時延的平衡:

  • 內存級處理,主鏈路零干擾

執行機制:限流判斷為純內存操作,不涉及外部 RPC 調用,確保消息處理流程完全不受阻塞。

性能優勢:主鏈路延遲無感知,適用于對響應時間要求嚴苛的在線業務場景。

  • 先消費后結算,消除誤限流風險

設計原理:采用異步 Token 核銷機制,客戶端可先執行操作,限流 SDK 后續異步周期性同步配額消耗。
效果保障:杜絕因限流判斷延遲導致的正常請求被誤拒,確保業務連續性。

  • 短暫超限容忍,資源緩沖池兜底

場景說明:在流量毛刺等突發場景中,可能出現瞬時配額超限,由于先消費后結算的機制導致。
容錯機制:通過服務端資源預留 Buffer 吸收流量波動,避免因短暫超限觸發系統風險。

  • 彈性容錯設計,弱耦合架構保障可用性

故障降級策略:當限流 Server 服務異常時,系統自動切換至單機 Sentinel 組件實現基礎單機限流功能。
依賴特性:對限流 Server 服務實現弱耦合架構,可以通過隨時動態降級來避免限流 Server 服務異常導致的服務異常,確保分布式限流服務的高可用。

限流實現難點二:如何平滑限流毛刺

騰訊云 TDMQ RabbitMQ Serverless 版采用 TPS 作為集群規格單位,用于衡量集群的吞吐能力。例如,1000TPS 表示集群每秒可處理 1000 條 TPS(即綜合生產、消費等操作的加權計算)。在分布式限流系統中,這一規格對應每秒分配 1000 個 Token,其中 “一秒”即為默認的限流計數周期,用于動態控制流量配額。

在使用限流服務的實際運維中發現:

短周期(如1秒)
優勢:對流量波動敏感,可快速響應潛在過載風險;
缺陷:易因短暫毛刺誤觸限流,影響正常業務波動場景。

長周期(如10秒)
優勢:容忍毛刺,降低誤控率;
缺陷:服務端資源需承受更高瞬時沖擊風險。

為平衡流量控制精度與用戶體驗,騰訊云 TDMQ RabbitMQ Serverless 版將默認限流計數周期從1秒調整為10秒。這樣既降低了用戶因毛刺導致的限流困擾,又通過利用少量的服務器預留資源 Buffer 來承載瞬時流量沖擊,為高并發場景下的消息處理提供了可靠的支撐。

限流實現難點三:如何實現消費端限流

騰訊云 TDMQ RabbitMQ Serverless 版集群使用 AMQP 協議與客戶端交互,然而 AMQP 協議中并沒有定義很好的處理 Fail-Fast 限流錯誤的幀,因此在發送消息被限流的情況下,只能通過關閉 Channel 連接來通知到客戶端,此時客戶端會收到相應的 AlreadyClosedException 異常,然后業務需要通過重試來解決當前時間窗口內消息發送被限流的問題。

而在消費端限流的情況下,分為兩種情況,AMQP 協議中支持兩種消費模式,BasicGet(拉模式) 和 BasicConsume(推模式)。 此時對消費端的限流就需要考慮消費的連續性和延遲。針對 BasicGet 模式,是客戶端發起的主動同步拉取消息的命令,此時客戶端每一次拉取消息是可以直接感知到是否被限流的,更好的方式是通過關閉連接來讓客戶端感知到限流,從而讓業務上通過重試來解決拉取當前時間窗口內消息消費被限流的問題。

但是針對 BasicConsume(推模式), 同時也是 AMQP 客戶端最普遍的使用方式,考慮到客戶端開啟一個長連接監聽相應隊列上的消息,此時如果因為限流粗暴地關閉 Channel 連接, 此時的客戶端往往不能實時感知到連接 Channel 斷開,增加了客戶端業務上處理的復雜度,同時消費側重建 Channel 連接也會讓消費流量充滿毛刺和消費延遲增加。因此騰訊云 TDMQ RabbitMQ Serverless 版在推模式下使用消費抑制的方式來實現消費端限流,當消費 TPS 超過閾值時,會減少推送到客戶端的頻率,保證了在連接 Channel 不斷開的情況下,消費流量的平穩,盡量減少因為限流導致的消費延遲。

客戶端實踐教程

規劃集群限流負載

騰訊云 TDMQ RabbitMQ Serverless 版的限流機制旨在保障服務穩定性與可靠性。防止在集群高負載時出現服務響應長尾毛刺,最終導致請求成功率下降,業務受損等問題。因此,在接入時建議:客戶側需要提前規劃集群負載,依據當前規模和未來趨勢預測來充分評估業務 TPS, 如果業務流量具有波動特性,應以峰值 TPS 為準,根據相應的評估后的 TPS 購買相應規格的實例集群。

限流相關告警配置

騰訊云 TDMQ RabbitMQ Serverless 版默認接入了騰訊云監控的能力,可以利用騰訊云 TDMQ RabbitMQ Serverless 版控制臺的監控告警能力實現對集群負載的實時觀測,提前發現 TPS 水位風險并及時操作升配來避免觸發限流導致業務受損。告警策略建議:

  1. 發送和消費 TPS 水位超過容量的 70% 時觸發告警,提醒進行升配評估。
  2. 出現發送限流時觸發告警,警告業務發送消息可能失敗風險。

客戶端限流異常處理

業務代碼通過 RabbitMQ SDK 發送消息時,需要捕獲包括限流錯誤在內的異常,并保存必要的上下文信息,以便人工介入恢復業務。當騰訊云 TDMQ RabbitMQ Serverless 版實例的 TPS 流量峰值超過騰訊云控制臺所購買實例的 TPS 規格上限時,業務側生產消費流量會被限流。

限流后的行為如下

騰訊云 TDMQ RabbitMQ Serverless 版服務端會返回錯誤碼信息。

騰訊云 TDMQ RabbitMQ Serverless 版服務端關閉當前請求的 Channel 連接,代碼中可以捕獲異常并重新打開 Channel 連接,具體請參見錯誤碼處理示例代碼章節。

錯誤碼信息
錯誤碼:reply-code=530

錯誤信息:reply-text=[requestId: 3143682333552716694] Action: pub rate limited by cluster on instance:xxx reason:PublishMessage, class-id=60, method-id=40)

錯誤堆棧

Suppressed: com.rabbitmq.client.AlreadyClosedException: channel is already closed due to channel error; protocol method: #method<channel.close>(reply-code=530, reply-text=[requestId: 3143682333552716694] Action: pub rate limited by cluster on instance:amqp-autotest reason:PublishMessage, class-id=60, method-id=40)
at com.rabbitmq.client.impl.AMQChannel.processShutdownSignal(AMQChannel.java:437)
at com.rabbitmq.client.impl.ChannelN.startProcessShutdownSignal(ChannelN.java:295)
at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:624)
at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:557)
at com.rabbitmq.client.impl.ChannelN.close(ChannelN.java:550)
at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.lambda$close$0(AutorecoveringChannel.java:74)
at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.executeAndClean(AutorecoveringChannel.java:102)
at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.close(AutorecoveringChannel.java:74)

RabbitMQ AMQP Java SDK 業界使用的比較廣泛,因此使用該 SDK 作為示例,RabbitMQ AMQP Java SDK 不會對限流錯誤進行自動重試,因此業務代碼需要捕獲異常并進行處理,示例代碼如下:

private static final int MAX_RETRIES = 5; // 最大重試次數
private static final long WAIT_TIME_MS = 2000; // 每次重試的等待時間(以毫秒為單位)
private void doAnythingWithReopenChannels(Connection connection, Channel channel) {try {// ......// 在當前通道channel下執行的任何操作// 例如消息發送、消費等// ......} catch (AlreadyClosedException e) {String message = e.getMessage();if (isChannelClosed(message)) {// 如果通道已經關閉,關閉并重新創建通道channel = createChannelWithRetry(connection); // 在重連后可以繼續執行其它操作// ......} else {throw e;}}
}
private Channel createChannelWithRetry(Connection connection) {for (int attempt = 1; attempt <= MAX_RETRIES; attempt++) {try {return connection.createChannel();} catch (Exception e) {System.err.println("Failed to create channel. Attempt " + attempt + " of " + MAX_RETRIES);// 檢查錯誤, 若仍是被限流導致的關閉錯誤,則可以等待后繼續重試// 也可移除本部分重試邏輯if (attempt < MAX_RETRIES) {try {Thread.sleep(WAIT_TIME_MS);} catch (InterruptedException ie) {Thread.currentThread().interrupt(); // 還原中斷狀態}} else {throw new RuntimeException("Exceeded maximum retries to create channel", e);}}}throw new RuntimeException("This line should never be reached"); // 理論上不會到達這里
}
private boolean isChannelClosed(String errorMsg) {// 判斷是否包含channel.close報錯,該報錯代表通道已關閉。// 可能涵蓋530,541等錯誤信息。if (errorMsg != null && errorMsg.contains("channel.close")) {System.out.println("[ChannelClosed] Error details: " + errorMsg);return true;}return false;
}

總結

騰訊云 TDMQ RabbitMQ Serverless 版通過分布式限流架構為在線業務提供高可用的消息服務保障。在分布式限流模式下,服務端通過集中式 Token 管理系統(限流Limiter)動態分配資源配額,防止因突發流量沖擊導致核心存儲層(底座 Broker 集群)過載來提高系統穩定性,同時采用 【先消費后結算】的異步處理模式,客戶端在限流 SDK 內部閉環完成 Token 申請,避免阻塞主鏈路,確保限流調用接口低延時,限流 SDK 周期性同步 Token 消耗數據至限流 Server,最終平衡了限流精度與調用限流服務的性能開銷。同時針對消費端的限流可以實現不斷 Channel 連接,實現了消費端在限流毛刺與消費延遲之間的雙重保證,此外,面對限流 Server 服務不可用的情況,系統能夠自動動態降級為單機限流模式,確保客戶端請求的連續性,保持對限流服務的弱依賴設計來實現系統解耦。

在實際應用與運維中,同時也需要客戶業務方的配合,在接入騰訊云 TDMQ RabbitMQ Serverless 版服務時,業務方客戶需要根據業務規模和未來趨勢合理規劃集群,預留足夠的 TPS 配額以應對突發流量,防患于未然。同時騰訊云 TDMQ RabbitMQ Serverless 版提供了服務端完善的監控和告警,支持客戶通過監控告警能力實時訂閱集群負載,提前發現 TPS 水位風險并及時進行升配等操作。在客戶端業務代碼層面,需要捕獲限流異常并處理,保證代碼的健壯性,同時保存必要的上下文信息,以便人工查看相關日志最終介入來恢復業務。

通過本文對騰訊云 TDMQ RabbitMQ Serverless 版的限流機制的介紹與實踐教程,相信讀者對騰訊云 TDMQ RabbitMQ Serverless 版的限流機制有了更深入的理解,并能夠在實際項目中靈活應用,最終為業務的高并發、大流量場景提供穩定的支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86534.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86534.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86534.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

官方鏈接內容整理的 Spark-TTS Windows 安裝完整流程

官方鏈接內容整理的 Spark-TTS Windows 語音克隆 安裝完整流程 官方鏈接內容整理的 Spark-TTS Windows 安裝完整流程&#xff1a; Spark TTS&#xff1a;基于大型語言模型的文本轉語音模型 Spark-TTS 是一個先進的文本轉語音系統&#xff0c;利用大型語言模型&#xff08;LLM…

Spring Cloud Config動態刷新實戰指南

以下是利用 Spring Cloud Config + Bus 實現配置動態刷新的完整步驟和原理說明: 一、核心原理 消息總線機制 Bus 通過消息代理(如 RabbitMQ/Kafka)建立公共 Topic(默認 springCloudBus),當配置變更時,任一服務觸發刷新請求,消息會廣播至所有監聽該 Topic 的服務實例,實…

Linux 修改密碼教程

Linux 修改密碼教程 Linux 系統中修改密碼是非常常見的管理操作&#xff0c;無論是修改當前用戶密碼還是其他用戶的密碼&#xff0c;通常都可以通過終端完成。本文將詳細介紹如何在 Linux 系統中修改密碼&#xff0c;并包括修改其他用戶密碼的方法。 1. 修改當前用戶密碼 修改…

正則表達式詳解:從基礎到高級應用的全面指南

文章大綱 引言&#xff1a;什么是正則表達式&#xff1f; 在編程和文本處理領域&#xff0c;正則表達式&#xff08;Regular Expression&#xff0c;簡稱 regex&#xff09;是一種強大的工具&#xff0c;用于描述和匹配文本中的特定模式。它本質上是一種由字符和特殊符號組成…

flutter結合ai工具(其他語言通用)

一、為什么Flutter開發者需要免費AI工具&#xff1f; 1. 減少重復性編碼 Flutter開發中&#xff0c;UI組件、網絡請求、狀態管理等代碼高度重復&#xff0c;AI可自動生成這些代碼。 示例&#xff1a;輸入"創建一個Material Design風格的登錄頁面"&#xff0c;AI工具…

鴻蒙容器組件 Row 全解析:水平布局技術與多端適配指南

一、引言&#xff1a;Row 組件 —— 水平布局的核心引擎 在鴻蒙全場景應用開發中&#xff0c;Row 容器組件作為水平布局的標準載體&#xff0c;通過聲明式語法實現子組件的有序水平排列。作為線性布局體系的重要組成部分&#xff0c;其簡潔的屬性體系與強大的適配能力&#xf…

基于 PCIe 架構的處理器系統

處理器系統A 在有些處理器系統中&#xff0c;沒有直接提供PCI總線&#xff0c;此時需要使用PCIe橋&#xff0c;將PCIe鏈路轉換為PCI總線之后&#xff0c;才能連接PCI設備 在這種結構中&#xff0c;RC由兩個FSB-to-PCIe橋和存儲器控制器組成。 FSB是Front Side Bus的縮寫&…

Qt 與 Halcon 聯合開發五:為何與如何將耗時算法移入子線程

在 Qt 應用程序開發中&#xff0c;界面響應速度直接影響用戶體驗。而在集成圖像處理庫如 Halcon 的項目中&#xff0c;耗時算法一旦運行于主線程中&#xff0c;極易造成界面卡頓甚至假死。本篇文章將圍繞耗時算法必須移入子線程執行這一核心原則&#xff0c;結合 Qt 與 Halcon …

聚焦OpenVINO與OpenCV顏色通道轉換的實踐指南

顏色通道順序問題&#xff1a;OpenVINO模型RGB輸入與OpenCV BGR格式的轉換 在計算機視覺任務中&#xff0c;框架間的顏色通道差異常導致模型推理錯誤。以下方法解決OpenVINO模型需要RGB輸入而OpenCV默認輸出BGR的問題。 理解核心差異 OpenCV的imread()函數遵循BGR通道順序&a…

【軟考高級系統架構論文】論企業集成平臺的理解與應用

論文真題 企業集成平臺 (Enterprise Integration Platform, EIP) 是支持企業信息集成的環境,其主要功能是為企業中的數據、系統和應用等多種對象的協同運行提供各種公共服務及運行時的支撐環境。企業集成平臺能夠根據業務模型的變化快速地進行信息系統的配置和調整,保證不同…

LabVIEW光譜儀設計

采用LabVIEW 開發平臺&#xff0c;搭配品牌硬件構建光譜儀系統&#xff0c;實現光譜數據的高效采集、分析與顯示&#xff0c;展現 LabVIEW 在儀器開發中的快速集成與靈活擴展能力。 ? 應用場景 科研領域&#xff1a;用于材料光譜特性研究、光學實驗數據分析&#xff0c;支持高…

Nginx配置文件介紹和基本使用

Nginx配置文件介紹和基本使用 Nginx 是一款高性能的 HTTP 服務器、反向代理服務器及電子郵件代理服務器&#xff0c;由俄羅斯工程師 Igor Sysoev 開發&#xff0c;并于2004年首次公開發布。以輕量級、高并發能力、穩定性和低資源消耗著稱。 主要功能 HTTP服務器&#xff1a;…

DataSophon 1.2.1集成Flink 1.20并增加JMX 監控

參考:datasophon集成Flink1.20.0 此大神有多篇集成其他服務的文章&#xff0c;建議關注一波 一、服務集成 flink 1.20 下載 1.構建壓縮包&#xff1a; 1.1拷貝需要的包 tar -zxvf flink-1.20.0-bin-scala_2.12.tgz tar czf flink-1.20.0.tar.gz flink-1.20.0# 為了flink cdc…

RSYNC+IONTIFY數據實時同步

一、RSYNC簡介 rsync是linux系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步&#xff0c;支持本地復制&#xff0c;或者與其他SSH、rsync主機同步。 二、rsync特性 rsync支持很多特性&#xff1a; 可以鏡像保存整個目錄樹和文件系統可以很容易做到保持…

吉林大學軟件工程期末復習整理

概述 22級軟件工程考試細節及復習相關問題見下面這篇帖子&#xff0c;作者自己復刻了一版真題 吉林大學軟件工程2025年期末真題&#xff08;回憶復刻版&#xff09;-CSDN博客 下面是作者復習時整理的筆記&#xff0c;放到csdn之后序號排版稍微有點亂 21級考試情況可以參考學…

chili3d筆記23 正交投影3d重建筆記4 點到線2

從俯視圖到主視圖就這兩條線有問題&#xff0c;比想象的效果好 原圖 兩條斜線變成了4條橫線 經典少一根線 好了但是不知道為什么好了 import { Logger, PubSub } from "chili-core"; import DxfParser, { ILineEntity } from dxf-parser; class Cluster {lines: [num…

LDO的自放電功能

LDO&#xff08;低壓差線性穩壓器&#xff09;的自放電功能&#xff08;Discharge Function 或 Active Discharge&#xff09;是一種在關閉輸出時主動釋放輸出端殘留電荷的機制。以下是其關鍵點&#xff1a; 1. 自放電功能的作用 快速放電&#xff1a;當LDO被禁用&#xff08;如…

Ingress-Nginx簡介和配置樣例

Ingress-Nginx 是 Kubernetes 中一個基于 Nginx 的 Ingress 控制器&#xff0c;用于管理對集群內服務的 HTTP/HTTPS 訪問。它是 Kubernetes Ingress 資源的實現之一&#xff0c;通過配置 Nginx 反向代理和負載均衡器&#xff0c;提供路由規則、SSL/TLS 終止、路徑重寫等高級功能…

Java+LangChain實戰入門:深度剖析開發大語言模型應用!

在人工智能飛速發展的今天&#xff0c;大語言模型&#xff08;如GPT系列&#xff09;正改變著我們構建應用的方式。但如何將這些先進模型無縫集成到企業級Java應用中&#xff1f;這正是LangChain框架的強項——它簡化了語言模型的調用、鏈式處理和上下文管理&#xff0c;讓開發…

論文筆記:Large language model augmented narrative driven recommendations

RecSys 2023 代碼&#xff1a;iesl/narrative-driven-rec-mint: Mint: A data augmentation method for narrative driven recommendation. 1 intro 盡管基于歷史交互的數據能夠有效地提供推薦&#xff0c;但用戶在請求推薦時&#xff0c;往往只是對目標物品有一個模糊的概念…