我開發我正在評估爲通信層的幾個選項的客戶機/服務器應用程序。作爲此通信框架的一部分,我正在考慮使用谷歌協議緩衝區(PB)來表示傳輸數據,而不是重新發明我自己的二進制結構。協議緩衝區和實際的交通選擇 - 插座或中間件
現在來談談實際的傳輸,我想知道是否應該使用普通套接字發送/接收這些二進制消息或使用某種形式的中間件。使用中間件與套接字相比有一些明顯的優勢。我關心的幾個包括:溝通模式 - 發佈/訂閱,請求/響應和故障轉移。
另一方面,與中間件方法相比,使用套接字具有開銷低的優點,並且可以提供更好的性能。
也可以考慮使用協議緩衝區(谷歌協議緩衝區wiki上的第三方附件)提供的RPC庫在客戶端和服務器之間進行通信。儘管它從低級套接字中抽象出來,但它仍然不支持中間件功能。
目前,我的客戶端是一個Adobe Flex GUI和兩個服務器端進程(一個Java和另一個C++)。在未來,客戶端和服務器端可能還會有其他語言開發的其他服務,如.NET
專家們對這些選擇以及體驗的感受如何,而不會影響性能。開發人員還有其他替代方案嗎?
感謝 DECE