我有一個非常繁忙的自託管WCF服務器,需要2000+客戶端頻繁更新其狀態。我發現服務器的CPU利用率一直在70%左右,而客戶端有50%的機會實際連接到服務器。他們將在60秒後超時。這是有問題的,因爲如果服務器沒有收到客戶的迴應,它會認爲客戶端處於離線狀態。繁忙WCF服務策略
我實現節流,所以我可以調整併發連接數/會話/等,但如果我沒有記錯,這增加只會導致更高的CPU利用率和更糟糕的連接問題。對?
將超時增加到超過60秒的幫助嗎?我並不確定它是如何工作的,但是客戶端是否會坐在某種類型的隊列中,直到服務器發出請求?或者最好是將超時設置爲較小的值,並且如果客戶端無法連接,則會使客戶端更頻繁地檢查(這看起來似乎只會使問題在某種意義上變得更糟)?
爲什麼服務器知道客戶端的任何信息? –
您需要進行可靠的消息傳遞是最大的問題嗎?即需要確保您的郵件始終通過? –
特里 - 是的,服務器會跟蹤已知在線的計算機列表。如果客戶端沒有報告,服務器會將其標記爲脫機,並通知管理員進行查看。顯然,如果客戶端無法與服務器通話,那麼會報告一堆虛假的「脫機」。 – bugfixr