999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux的多服務熱備系統研究實現

2025-09-28 00:00:00王歡歡李宏淵劉坤禹王鑫
現代信息科技 2025年16期

中圖分類號:TP311 文獻標識碼:A 文章編號:2096-4706(2025)16-0137-05

Research and Implementation of a Multi-service Hot Standby System Based on Linux

WANG Huanhuan,LI Hongyuan,LIU Kunyu,WANG Xin (The30th Instituteof CETC,Chengdu 610041,China)

Abstract: With the development ofcomputer and network technology,cluster systems have gradualy replaced traditional mainframes duetotheiradvantagesofscalabilityandhighcost-effectiveness,fiding widespreadapplicationacrossvarious fields. However,nodeuestwokissuesoudensiksiacssalleadtosicedsptios,makingthelabilityofster systems critical.RemoteProcedureCall(RPC),astheprimarycommunicationmethodbetweenclustersystemnodes,ishighly susceptibletseotd This paper designsand implements a multi-servicehotstandbysystem basedonthe Linux system,supporting both TCPand UDP services.Itprovidesahotstandbysolutionbasedoservice itselfforRPC,significantlyenhancing thereliabilityofclustersystems.

Keywords:Linux; multi-service hot standby;high availability; remote procedure call

0 引言

近年來,雙機熱備和集群熱備技術為企業關鍵業務提供了高可靠保障,避免因硬件故障或誤操作造成關鍵業務中斷或癱瘓,從而減少企業損失[1-2];同時考慮數據安全,MySQL等商業數據庫軟件提供基于數據自身的熱備技術,避免服務中斷后落盤數據丟失。高可用系統的主要目的就是保證商業系統服務的連續,高可靠,提高用戶體驗,為企業提供技術層面的高競爭力[。盡管這些熱備技術實現了業務和數據的高可用,但是這些熱備技術只基于硬件平臺自身做災備[4-5],當主機崩潰時備機及時替換,雖然原服務可重新運行但服務中斷后的運行上下文會丟失,以RPC遠程服務應用場景為例,備機啟動服務端后,原客戶端的信息缺失需要重新發起業務連接。目前鮮有基于服務本身的熱備技術,能夠恢復服務崩潰前的上下文信息,無須重新發起業務連接也可繼續使用,特別對于因編程bug在輸入特殊指令后崩潰的場景。

多服務熱備系統是一種用于提高系統可靠性和可用性的架構設計,它通過冗余節點和服務快速切換來確保在故障發生時服務能夠持續運行。

1多服務熱備系統相關研究

多服務熱備系統就是對于重要的服務使用線程池技術創建多個相同的業務線程,共同執行同一服務,在運行過程中實時備份,以冗余提高系統的可靠性[]。當服務出現故障時,監控線程可以立即發現故障并實時記錄出現異常的線程信息和運行上下文,同時選取其他可用線程接管服務,從而在不需要人工干預的情況下,自動保證系統能持續提供服務。更具體地說,多服務熱備系統常見的形式是RPC遠程服務后端熱備,一個監控線程和多個業務線程數據同時使用一個共享內存空間,當一個業務線程保持Active狀態,其余業務線程處于監控準備狀態。當其中保持Active狀態的一個業務線程出現故障無法啟動時,監控線程會通過軟件診斷(一般是心跳診斷)判斷出該情況,并激活一個冗余線程,保證應用在短時間內完全恢復正常使用。RPC通信流程如圖1所示。

"

Smith和Lee提出了一種基于冗余節點和服務快速切換機制的多服務熱備系統設計[]。文章提出了系統的架構,并且通過實驗驗證,作者證明了該系統能夠在多種故障場景下維持高可用性,并顯著減少停機時間,但在大規模分布式環境中,系統的響應時間和資源利用率仍有提升空間。

錢迎進[針對大規模集群中網絡波動與負載動態變化導致的RPC超時誤判問題,提出自適應超時(AT)策略與提前響應(EP)策略?;诳蛻舳藲v史響應時間與服務器負載實時計算超時閾值,避免固定超時導致的誤切換(如網絡擁塞時延長超時窗口)。服務器在預判無法按時響應時,主動發送輕量級EP消息通知客戶端調整預期,減少冗余重試。在Lustre存儲集群模擬中,超時率從 78% 降至 0% ,網絡流量減少 40% 。但策略依賴客戶端與服務器的時間同步,跨時區或時鐘漂移場景需額外補償機制。

馬駿提出了一種基于RPC的多平臺統一調用框架,采用精簡CORBA和Flick開源IDL編譯器,生成客戶端和服務端存根代碼。該框架通過Socket實現跨平臺數據傳輸,并引入操作系統抽象層 (OSAL)封裝Socket操作,使其支持Linux和Windows等多操作系統。該框架復雜度較高,設備資源受限時可能影響性能。

金海峰[1]利用Keepalived+NFS技術解決了單臺服務器的單點故障問題。但是對多線程的可靠性沒有進一步研究。

針對硬件類熱備技術的不足,本文采用線程池和共享內存技術解決RPC遠程服務的服務端崩潰后,原客戶端的信息缺失問題。并設計實現一個可用的系統兼容TCP和UDP業務,可為RPC遠程服務提供基于服務自身的熱備方案。

2多服務熱備系統的設計實現

2.1 動態可配置

文緩存大小,備份服務數量在創建熱備服務線程池時使用,可以為全局任務線程提供熱備,當有多個連接建立時對應存在多個任務線程,當任意一個任務線程異常時,熱備線程池可立即選出可用線程替代;上下文緩存大小在創建共享內存時使用,可以存儲所有任務線程的運行上下文信息以及心跳幀信息,當任務線程異常時,與之對應的共享內存區域會被熱備線程接管;配置完成后,重啟多服務熱備系統即可生效。

2.2 多服務熱備機制

多服務熱備系統啟動首先通過配置文件讀取需要備份的線程個數和上下文緩存大小,創建任務線程池和共享內存空間,其中任務線程池會默認預留一個監控線程,用于監視異常線程和選用冗余線程進行替換;共享內存空間用于監控線程與激活線程之間的心跳監聽和運行上下文之間的共享。

初始選用一個業務線程作為任務線程并設置為Active狀態,其余線程設置為Ready狀態,監控線程實時監聽業務線程狀態,監控線程與任務線程建立心跳通道,如果監控線程監控到心跳中斷,則將該線程記錄為Crash狀態,并保存該線程對應的業務上下文,同時選用處于Ready狀態的線程進行替換,同時將該線程的狀態修改為Active,并同步處于Crash狀態下的線程上下文信息。

全局只有一個線程處于Active狀態,當發現心跳中斷,監控線程立即記錄該信息;如果沒有Ready狀態的線程可供選用時監控線程立即告警。

2.3 心跳檢測機制

監控線程與激活線程之間的心跳檢測使用共享內存的方式實現,兩個線程之間定期同步心跳信息。首先監控線程每隔1秒發送固定長度的心跳包給激活線程,當激活線程接收到后立即填充信息回復。心跳包格式如圖2所示。

"

1) 0x55 :固定值,代表心跳協議幀。2)魔數:2字節隨機數。3)seq:4字節序列號,每次交互自增1。4)timestamp:8字節時間戳。5)CRC:2字節校驗碼。監控線程如果在3秒內未收到回執心跳包則判定心跳異常,并將上一次發送的心跳幀記錄,方便后續問題排查和維護。

2.4 數據同步機制

通過配置文件可以動態設置備份服務數量和上下處于Active狀態下任務線程處理業務流程可細分為 n 步,每一個步驟將運行變量記錄至共享內存對應分區中,同時任務線程通過共享內存方式將上下文實時同步給監控線程,監控線程能夠得到業務線程的最新運行信息,保證在業務線程異常中止后能夠完全恢復現場繼續使用。

任務線程在初始運行時就需要創建一個本地的上下文空間,該空間實時記錄整個業務處理過程中的數據變量,并在每次記錄時同步給共享內存防止線程突然中斷導致變量信息丟失。如果在某一個步驟任務線程異常時,該任務線程所經歷的步驟存儲的變量內容并不會消失,熱備線程啟動后首先得到當前步驟、運行變量等信息,客戶端可繼續發送業務命令并且運行日志并不會丟失,特別對于斷點續傳、故障恢復等應用場景,數據同步流程如圖3所示。

圖3數據同步流程

行恢復。此時為了盡快恢復服務,監控管理線程立即從熱備線程池中挑選出可用的線程替換當前異常的任務線程。熱備線程開始啟動時利用監控管理線程提供的ID信息尋找到映射好的共享內存空間并取出運行上下文信息,接著異常線程崩潰的步驟繼續執行。

信息同步單元:監控管理線程主動發送心跳幀到任務線程,任務線程接收到后立即回復監控管理線程。整個交互過程非常頻繁,信息同步單元使用共享內存方式實現監控管理線程與任務線程間通信,可以快速可靠地交互。

圖4功能模塊圖

3多服務熱備系統的部署使用

多服務熱備系統部署在Linux平臺上,本文使用CentOS系統進行部署,要求具備網絡協議棧、線程庫以及共享內存庫,通過命令行執行??蓤绦形募c配置文件存放在同一目錄,多服務熱備系統啟動后綁定監聽本地網口,被動等待客戶端發送指令。圖4為功能模塊圖。下文詳細介紹多服務熱備系統架構。

服務單元:接收和處理來自RPC客戶端發來的任務,針對不同任務可設計對應的處理邏輯。例如查詢命令可以反饋客戶端當前服務端版本信息、可提供的API列表、系統時間等;配置命令可以設置服務端當前時間、服務優先級、服務端其他基本信息等;運算命令可以利用服務端執行科學計算、大模型業務運算等。在正式執行任務的開始處,從共享內存指定區域讀取上下文信息,然后按照預定流程執行。

監控管理單元:針對正在運行的任務線程進行周期性監聽管理。比如每隔3秒同步一次心跳數據,如果超過3秒對端未回復則將該任務線程標記為異常線程,即系統認為該線程發生了不可預期的故障無法自

通過監控線程動態監測機制判定當前服務是否異常,如果服務退出則通過線程池挑選出可用線程接替服務,從而實現多服務熱備效果。多服務熱備系統數據處理流程如圖5所示。

圖5RPC多服務系統內部流程圖

4多服務熱備系統的測試驗證

多服務熱備系統基于Linux平臺、C語言實現,可直接通過命令行啟動,多服務熱備系統啟動時首先讀取配置文件獲取備份線程數目和上下文空間容量,創建任務線程池和共享內存空間。依次打印創建好的線程ID,該ID信息可用于異常線程檢測、切換、上下文獲取以及故障制造等,執行效果如圖6所示。

"

多服務熱備系統啟動后,會創建固定個數的業務線程以及1個監控線程、1個銷毀檢測線程,主進程綁定并監聽套接字,如果接收到客戶端發來的命令幀則分派給任務線程處理,任務線程處理方式為打印接收到的業務數據,監控線程同時對該任務線程進行熱備跟蹤,測試樣例使用2個任務線程;通過2個RPC客戶端分別建立連接,能夠正常發送數據。連接效果如圖7所示。

"

為了驗證多服務熱備系統的有效性,需手動構造業務線程異常中止;為構造異常中止現象,在原有多服務熱備系統中增加銷毀監控線程,通過測試程序輸入threadID殺死指定ID的線程。分別殺死多服務熱備系統中的業務線程 1~2 ,監控線程通過心跳檢測得到線程異常信息,然后從線程池中挑選可用的線程替代當前服務。異常信息截圖如圖8所示。

"

經過手動制造異常后,RPC服務端快速切換異常線程,依據異常線程的ID信息查找對應的運行上下文,完全接替原有線程,使用RPC客戶端 1~2 繼續發送業務數據,原有連接未丟失,可繼續正常使用服務?;謴驼5姆杖鐖D9所示。

"
"

通過測試驗證,多服務熱備系統可以動態監測業務線程的運行狀態,當發現業務線程異常則快速替換并啟用熱備線程繼續為原有客戶端提供服務,并且原有連接信息等運行上下文未丟失,避免客戶端重新發起連接才能使用服務,進而提高了服務的可靠性。

5結論

RPC多服務熱備技術通過冗余部署與動態切換機制,保障分布式系統的高可用性。其核心設計圍繞服務注冊與發現、數據一致性、故障檢測與恢復展開,結合現代RPC框架的特性,形成了多層次的熱備解決方案。

本文提出了一種RPC多服務熱備技術通過架構解耦、智能檢測與高效同步機制,顯著提升了分布式系統的容災能力。然而,其在資源效率與復雜場景適應性上仍有待優化,未來將向輕量化、自適應方向演 進,進一步平衡性能與可靠性需求。

參考文獻:

[1]劉慕霄,劉憲忠,趙昶宇.嵌入式系統雙機熱備技術研究[J].科技與創新,2022(6):119-121.

[2]秦友倫,袁強,涂炯,等.一種基于雙機熱備系統的仲裁切換方案[J].兵工自動化,2015,34(8):56-58.

[3]宮燦鋒,賀勇,周寧,等.冗余服務器故障檢測和可靠切換方法的研究及應用[C]//河南省電機工程學會2020年優秀科技論文集.[出版地不詳]:河南省電機工程學會,2020:71-76.

[4]杜巖冰.面向云存儲的高性能災備技術研究[D].無錫:江南大學,2024.

[5]郭緒晶.服務器集群系統高可用模塊設計與實現[D].北京:北京郵電大學,2013.

[6]ZHANGTF,ZHOUHP,HUANGCY,etal. AchievingZero-copySerializationforDatacenterRPC[C]//IEEE International Performance,Computing,andCommunications Conference.Anaheim:IEEE,2023:304-312.

[7]SMITHJ,LEE S.Multi-ServiceHot Standby System Design and Implementation[J].Journal ofComputer Systems, 2015,45(3):112-130.

[8]錢迎進,肖儂,金士堯.大規模集群中一種自適應可擴展的RPC超時機制[J].軟件學報,2010,21(12):3199-3210.

[9]馬駿.多平臺RPC統一調用框架的設計與實現[D].上海:上海交通大學,2018.

[10]金海峰,余傲雪.高可用VSFTPD集群服務器架構的實踐應用[J].安徽電子信息職業技術學院學報,2024,23(1):1-6.

作者簡介:王歡歡(1992—),男,漢族,重慶渝北人,工程師,碩士研究生,研究方向:網絡安全。

主站蜘蛛池模板: 亚洲黄色网站视频| 天天做天天爱夜夜爽毛片毛片| 亚洲天堂777| 日韩激情成人| 国产微拍精品| 波多野结衣中文字幕久久| 国产欧美视频在线观看| 国产真实乱子伦精品视手机观看| 全部免费特黄特色大片视频| 韩国自拍偷自拍亚洲精品| 亚洲最黄视频| 亚洲码在线中文在线观看| 香蕉久久国产超碰青草| 国内熟女少妇一线天| 午夜不卡视频| 国产迷奸在线看| AV无码一区二区三区四区| 免费av一区二区三区在线| 免费三A级毛片视频| 午夜不卡视频| 欧美成人在线免费| 五月婷婷丁香综合| 秘书高跟黑色丝袜国产91在线| 久热这里只有精品6| 又粗又硬又大又爽免费视频播放| 国外欧美一区另类中文字幕| 不卡国产视频第一页| 日韩毛片在线视频| 久久亚洲美女精品国产精品| 重口调教一区二区视频| 亚洲人成在线免费观看| 国产精品开放后亚洲| 不卡午夜视频| AV网站中文| 国产三级a| 日本精品一在线观看视频| 亚洲a级在线观看| 999国内精品久久免费视频| 亚洲视频色图| 中文无码精品a∨在线观看| 欧美特黄一免在线观看| 久久国产高清视频| 亚洲AⅤ无码国产精品| 精品亚洲麻豆1区2区3区| 欧美日韩一区二区三区四区在线观看| 国产日韩AV高潮在线| 无码精油按摩潮喷在线播放 | a级毛片视频免费观看| 国产丝袜91| 色综合久久88色综合天天提莫| …亚洲 欧洲 另类 春色| 国产av色站网站| 免费人欧美成又黄又爽的视频| 亚洲中文字幕97久久精品少妇| 91系列在线观看| 毛片网站观看| 亚洲无码37.| 九九热视频精品在线| 久久亚洲国产一区二区| 91网站国产| 国产视频a| 色天堂无毒不卡| 免费国产高清视频| 高清久久精品亚洲日韩Av| 91在线播放免费不卡无毒| 久久人妻xunleige无码| 视频二区欧美| 久久女人网| 国产女人在线| www.99在线观看| 黄色网在线免费观看| 精品国产成人高清在线| 日本五区在线不卡精品| 久久国产精品嫖妓| 国产午夜精品鲁丝片| 老熟妇喷水一区二区三区| 成人免费一区二区三区| 国产91透明丝袜美腿在线| 全部免费毛片免费播放| 亚洲综合欧美在线一区在线播放| 久久99国产精品成人欧美| 在线无码九区|