
作者:朱雲翔、胡平
信息轉發模塊在系統監控項目中扮演「承上啟下」的關鍵角色:它一方面匯總監控主機發送的各類信息,另一方面將這些信息分發給各個顯示端。本章將詳細設計一個具備接收、轉發監控信息,並為顯示端提供用戶簽到服務的信息轉發模塊。
信息轉發模塊負責接收被監控主機的系統信息與應用信息,並根據顯示端的簽到狀態決定是否發送數據。模塊由三大部分組成:用戶模塊、簽到程序、轉發程序。
為確保數據安全,系統不允許任意顯示端獲取主機信息,必須對每個顯示端進行備案。信息轉發進程僅向已備案的顯示端發送數據。每個顯示端分配一個用戶,用戶信息至少包含:
實踐經驗:配置信息通常存在兩種狀態——存儲態(靜態存儲)與運行態(動態存儲)。存儲態指系統未運行時的配置存儲方式(如文件系統、數據庫);運行態指系統啟動後配置信息載入內存或數據庫的方式。本項目用戶信息靜態存儲於 config.ini,啟動時讀入內存結構。
系統啟動載入用戶信息時,不會自動開啟簽到標志。只有接收並審核通過顯示端發送的簽到申請報文後,才更新用戶簽到標志。該程序專責與顯示端的 TCP 通信,接收請求並修改用戶動態配置。常見受理信息包括:簽到報文、簽退報文、註冊報文。
轉發程序負責將監控到的主機信息分發給顯示端,處理流程如下:
由於簽到模塊與轉發模塊均需操作顯示端用戶信息(前者實時更新,後者頻繁讀取),必須採用多進程共享的動態存儲方式——共享內存是最佳選擇。

圖21-1 信息轉發模塊分解圖