鏡像服務器文件實時監控同步程序

這是為我們網站解決南北電信網通互聯互通問題而寫的一個程序。

優游中國(www.yooyocn.com)是一個大型旅游門戶網站,提供了資訊,視頻,圖片,博客,論壇等大數據量的業務內容。

為了使全國各地的網友都能夠快速訪問我們的網站,我們部署了三臺服務器,一臺雙線主服務器,一臺網通專線服務器,一臺電信專線服務器。通過智能DNS解析,使網通的用戶訪問網通服務器,電信用戶訪問電信服務器。

而雙線位于我們所在的城市,僅供我們網站編輯人員使用。因為我們的現狀,雙線就是雙慢。所以,只只我們的編輯人員操作它上面的內容管理系統(CMS),把資訊,視頻,圖片上傳到這臺服務器上。然后,需要一個方法把雙線主服務上新增加或修改的內容分發(也就是復制)到網通和電信的服務器,使網通電信用戶都能看到同樣的內容。

這就出來兩個問題,一是同步,是增量同步,二是實時。

我花了很多時間尋找滿足需求的工具。我記得在兩年以前,鏡像服務器應該是一個熱門話題吧。這樣的工具應該不少。但出乎意料,都是一些定時全部復制的軟件。沒有說是網站增加修改文件了,馬上就可以同步到其它服務器上。例如,當初很流行的Update Now! ,2000年的東西,至今還有很多人在用。CuteFTP 8的文件同步功能,最少是每天運行一次,并且是遍歷所有文件后把不同的文件FTP過去。

晚上和朋友郁悶地談起這個事,他主要是做WinForm的,立馬說.NET里有文件監控的類。可以實時獲取增加或變更的文件。我大笑,好啊,正發愁呢!.NET的FTP類也很強,那就不如自己搞!第二天花一個上午,研究FileSystemWatcher。下午出個了DEMO,果然很強,就決定做。實現流程代碼量并不多,一天半時間就搞定了,剩下三天都在解決其中的各種問題。在服務器上運行時,問題一個一個出現,被自以為完美地解決,高興一會后,發現有更棘手問題出現…

程序主要實現了如下功能:

通過FileSystemWatcher實時監控指定的文件夾,取得文件夾下增加或修改的文件名,通過“NotifyFilters.Size”屬性實現。它有很多屬性,LastAccess,LastWrite,測試時把我搞得很糊涂,往這個文件夾下粘貼一個文件,會引發好幾次這個事件。查了好久才明白,COPY操作確實是這樣。但具體為啥,MSDN上也沒說清。好在服務器上運行時沒出現這個現象,也放過了。

捕獲文件名后沒有立即FTP,把文件信息放在了XML中,FTP從XML文件中讀取文件名并上傳,上傳成功的信息移到另外的XML中。以上過程中的出現的異常也放在日志XML中。這個處理流程,也是我花了一晚上才想起來的。

所以,這個程序代碼主要有三大塊,一是監控,二是讀寫XML,三是FTP。

實現這些功能的代碼并不多,不復雜,但我的收獲不是程序本身,而是又一次體會到了編碼時的快樂和樂趣。

在寫這個程序時,參考了很多資料,很多網友寫的代碼。所以,當我也做出一些東西時,我把它開源出來,希望能讓更多的人受益。

最后,這個程序到現在為止,雖然能運行,但它并未真正部署。因為,我們選擇了更好的服務器架構解決方案,具體請看我的另一篇文章。

另外,這個程序還有很多遺憾沒有解決,希望能夠以此拋磚引玉,更多的人,做出更優秀的程序。

??? 源碼下載:/Files/xtigmh/FileSystemWatcher200801141016.rar?

轉載于:https://www.cnblogs.com/xtigmh/archive/2008/01/14/1037818.html

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

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

相關文章

Nginx學習系列二Linux下Nginx實現負載均衡

關于在本地虛擬機(VMware 14)下安裝Linux同時安裝Nginx,請參考Nginx學習系列之搭建環境 1、啟動Nginx 在Nginx安裝成功的前提下,啟動Nginx 已root模式登陸(權限需要),接著找到Nginx的安裝目錄,啟動Nginx,并且指定Nginx啟動所需的配置文件,該文件也在Nginx的安裝目錄下. 2、查看…

FastCGI中文規范

http://fuzhong1983.blog.163.com/blog/static/1684705201051002951763/ . 介紹 FastCGI是對CGI的開放的擴展,它為所有因特網應用提供高性能,且沒有Web服務器API的缺點(penalty)。 本規范具有有限的(narrow&#xff09…

設計模式初學者系列-策略模式 -------為什么總是繼承

設計模式初學者系列-策略模式 -------為什么總是繼承 模板方法的延續 這篇稿子是基于我的前一篇模板方法設計模式之上演繹的,如果沒有閱讀請點擊這里查看,以了解這篇稿子的上下文。 在模板方法設計模式里我舉了一個例子:教育部…

紅米airdots掉了怎么查找_紅米K30 Pro 榮耀V30pro 這兩款手機該怎么選呢?

點擊?玩機數碼君?關注我,加★星標★你好 我是歲月神偷昨天可以說是小米拍手稱快的一天,紅米K30 Pro以2999的超低價成為目前最便宜的驍龍865旗艦,讓友商拍馬難追。友商明眼人都知道說的華為,怎么感覺小米每次發布會也替華為宣傳了…

返回一個循環整數組最大子數組和

任務要求: 1、輸入一個整形數組,數組里有正數也有負數。 2、數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。 3、如果數組A[0]……A[j-1]首尾相鄰,允許A[i-1], …… A[n-1], A[0]……A…

中文分詞入門之字標注法4

http://www.52nlp.cn/%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%85%A5%E9%97%A8%E4%B9%8B%E5%AD%97%E6%A0%87%E6%B3%A8%E6%B3%954 上一節主要介紹的是利用最大熵工具包來做字標注中文分詞,這一節我們直奔主題,借用條件隨機場工具“CRF: Yet Another CRF …

后臺設置 datakeynames

FormView2.DataKeyNames new String[] { "ShoppingRemarkID" }; 轉載于:https://www.cnblogs.com/Fernando/archive/2008/01/16/1041717.html

4K 海思 聯詠 芯片_老電視也有春天,換裝海美迪4K電視盒子H7 Plus

寫在前面YALL,大家好,我是老炮兒許老板。疫情進入六月逐漸好轉,各級各類學校相繼開學,年前給兒子報的托班也終于迎來了開學,平日里幫忙照看兒子的爺爺奶奶也終于得到了解放。現在白天有大把大把的時間來追劇看電視&…

知識付費不熱了,得到們接下來故事怎么講?

如今,知識付費風口已過,紅利期隨之在逐漸消失,很多知識付費的創業者也在感嘆生意難做,甚至有人已經開始離場。比如,百度音頻知識付費產品只生存了6個月,最后的更新時間則停在7月13日。再如,在分…

I'm genius,用游戲柄控制鼠標

昨天不小心把鼠標放在店里沒有帶回來,今天電腦就沒有鼠標了,用了很久的鍵盤,實在不爽,就突然發現自己有一個游戲柄,后來到網上查了一下怎么用游戲柄控制鼠標,呵呵,發現了一個,下載用…

WCF從理論到實踐(4):路在何方

本文的出發點 通過閱讀本文,您能了解以下知識: Address是什么? Address的組成? 如何在配置文件中指定Address? 如何通過編程方式設置Address? Address有什么特殊應用? 本文適合的讀者 適合WCF初學者&#xff…

office 2007圖標_微軟Office 365桌面版新圖標開始測試

IT之家3月1日消息 此前,微軟公布了全新的Office圖標,微軟Office 365在線網頁版在2月15日開始已經全面更新新版圖標,而桌面版Office 365現在也陸續開始測試新版圖標。目前微軟Office Dogfood通道上推送的開發者預覽版本已經在2月27日開始測試O…

【動態規劃BFS】相遇

這是我第一次模擬題測試點全部AC。。。 同機房的DALAO都用的BFS 然而我用的DP(其實不會BFS) 話不多說,上題! (灰常詳細)DP解法: 重點還是狀態轉移方程式的推導 1個點i要么是后面的位置i-1往前走…

Ruby on Rails 通過代理遠程安裝

在網上查了一些資料,都不詳細,現在列出標準命令: 1。如果代理服務器需要認證 gem install rails --include-dependencies --http-proxy http://username:passwordproxy:port 2。如果代理服務器不需要認證 gem install rails --include-depend…

五個思路,教你如何建立金融業的數據分析管理模型

說起銀行、保險、股票投資這樣的金融行業,很多人都認為它們是依靠數據驅動的企業,畢竟大數據的誕生本來就是為了金融信息流通而服務的,但在我身邊很多搞證券、投資的朋友看來,事實卻并非如此。 真正在金融行業做數據分析的人&…

【SSH網上商城項目實戰19】訂單信息的級聯入庫以及頁面的緩存問題

購物車這一塊還剩最后兩個問題,就是訂單信息的級聯入庫和頁面緩存,這里的信息是指購物車和購物項,即我們將購物車的信息存入數據庫的同時,也存入每個購物項的信息,而且外鍵都關聯好,這涉及到了Hibernate中的…

exfat分配單元大小選多少_安防監控攝像機視角大小和鏡頭毫米數的基礎知識!...

關于選擇監控鏡頭毫米數的問題,雖然只有新手才有此困惑,但是我們還是要認真地說一說。監控視角,就是指監控照射的鏡頭所能覆蓋到的范圍,就是監控畫面所能看到的角度統稱叫監控視角。我們正常選購監控的時候,除了可以選…

彩信編輯器之預覽功能

html代碼 <table width"200"height"250"border"0"cellpadding"0"cellspacing"0"bgcolor"#666666"><tr><td align"center"valign"middle"><marquee id"MMScreen&qu…

java 幾個實用的小工具

1、除法運算 編程的人都知道&#xff0c;java中的“/”、“%”運算&#xff0c;其中前者為取整&#xff0c;后者取余數。那么有沒有快捷的運算方法取正常的運算結果呢&#xff1f; 查了資料&#xff0c;發現很簡單。代碼如下&#xff1a; public static String txfloat(int a,i…

處理模板頁菜單高亮

//處理模板頁菜單高亮var urlstatus false;$("#indexMenu a").each(function () {if ((location.href /).indexOf($(this).attr(href)) > -1 && $(this).attr(href) ! ) {$(this).parent().addClass(active);urlstatus true;} else {$(this).parent().…