如果通訊協議使用TCP/IP,客戶端同中間件之間的SOCKET連接是非常有講究的。
應該視應用場合巧妙地使用短連接搭配長連接的方式。純粹地使用長連接或者純粹地使用短連接,
往往不大合理。如果長時間讓一個SOCKET長連接休閑,這無疑是對中間件資源的浪費,如果這種休閑的長連接數量非常多,可能會影響中間件的性能。光靠中間件通過發心跳包自動斷開長時間休閑的連接,其實這是中間件對此類事件的最后一道防線。
如果遠程方程都做成短連接,也不大好,例如一些遠程方法成塊地執行,如果執行一個遠程方法先同中間件建立SOCKET連接,執行完以后立即斷開連接,這樣就不好。因為建立SOCKET連接比較地耗時,一些遠程方法成塊地執行,耗費在建立連接上的
時間非常多了。那么我們可以在這一些成塊執行的遠程方法執行之前建立一個長連接,等這些遠程方法都執行完以后,再關閉這一個長連接,這樣比較合理。
其實長連接和短連接都是相對的。世界上的事情往往沒有純粹可言。所謂長連接中有短連接,短連接中有長連接,你看得見嗎?
設置中間件的線程池的線程方式,再在客戶端巧妙地使用長、短連接的配合,才能合理地構建一個多層架構。
