設計廣播消息給客戶
服務器代理保持輪詢數據庫(SQL Server 2012的)上如果有一個客戶端代理需要調度和/或配置進行任何更改。客戶端代理在網絡上的所有計算機上運行,並需要從服務器代理獲取更新的掃描計劃和配置,並更新其作業計劃程序。服務器代理和客戶端代理均使用Java構建。
問題陳述
服務器,一旦數據庫被更新的數據發送到客戶端代理的n個。
解決方法1
創建服務器和客戶端代理web服務和消耗對方。每當數據庫中的掃描計劃/配置發生變化時,服務器都會調用客戶端代理的方法並更新配置文件。
缺點解決方法1
在運行的JAR,在所有客戶端代理部署的Axis2 /碼頭/類似webserrver。考慮到這是在所有客戶端代理上部署Web服務器的人數可以達到150000,這是可取的嗎?另外,如果所有客戶機上都有Web服務器,應用程序是否可以清除安全認證?
溶液2
使用RMI服務器和客戶端之間的通信。在這種情況下,客戶端將保持輪詢服務器,因爲RMI通信是單向的。應該避免使用雙向呼叫,因爲它再次涉及每個客戶端機器上的服務器套接字。
缺點溶液2
每當DB被更新,它不能直接發送消息給所有的客戶機。它必須等待客戶端機器進行輪詢。如果需要立即掃描,所有客戶端代理將需要經常輪詢主代理。考慮到客戶端代理的數量可能會很大,這是可取的嗎? Java架構師通知的另一個缺點是RMI比web服務慢。那是對的嗎?
我必須去這兩個解決方案,或者如果有任何第三個解決方案,你們可以給我。有人還建議將JMS作爲廣播方式。
我們的設計師團隊想出了一個解決方案,因爲只有在服務器和代理客戶端代理爲web服務將繼續輪詢服務器代理定期。這樣,它就避免了在所有遠程代理上使用Web服務器。 JMS也被考慮在內。這是最好的解決方案之一。然而考慮到給定的解決方案滿足項目的所有要求,JMS被忽視了。儘管謝謝你的回答。它鼓勵我們進行更多的辯論和分析。 –