在過去的一次採訪中,有人問我如何編寫關鍵任務Windows服務,該服務必須保持100%的正常運行時間,響應速度非常快,並且可以更新。該服務被描述爲基於遠程處理的應用程序,它接收請求,執行計算併發迴響應。更新100%正常運行時間的應用程序
我的解決方案是有一個非常通用的服務,它只是作爲一個網關。這項服務永遠不會停止。它會將這些請求排隊並將它們轉發到另一個應用程序域中的另一個服務,該應用程序域將實際處理請求。這些處理服務中至少需要兩個處理服務,這樣可以降低一個處理服務的數量,而另一個處理服務可以響應傳入的請求。服務之間的接口將包括握手能力以查看服務是否正在運行。一個非常小的超時會存在,所以如果一個服務完成了,它不會保持請求。我還強調這個解決方案可以很好地擴展,因爲您可以在不同的盒子上添加更多這些服務。
面試官對這個想法並不是太瘋狂,因爲跨應用程序域甚至整個網絡進行通信的延遲問題。我爲一個關鍵任務應用程序表示,你應該建立一個穩固的基礎架構,因爲軟件本身不能成爲答案。他還表示,他們目前已經建立了一個使用重感染的系統。我曾想過將程序集加載到應用程序域並觀察目錄中的程序集更改,但這似乎太容易出錯。
有沒有人有類似的要求建立任何東西?你用什麼解決方案?什麼不行?反射是一種可用的選擇嗎?
很好的回答!謝謝+1 – Bob 2009-01-02 18:26:33