我正在开发一个客户端/服务器应用程序,我正在为此评估通信层的一些选项。
作为该通信框架的一部分,我正在考虑使用 google 的协议缓冲区 (PB) 来表示传输数据,而不是重新发明我自己的二进制结构。
现在进入实际传输,我想知道是否应该使用普通套接字来发送/接收这些二进制消息或使用某种形式的中间件。与套接字相比,使用中间件具有某些明显的优势。我关心的一些包括:通信模型——发布/订阅、请求/响应和故障转移。
另一方面,与中间件方法相比,使用套接字具有开销较低的优势,并且将提供更好的性能。
还可以考虑使用协议缓冲区(google 的协议缓冲区 wiki 上的第三方插件)提供的 RPC 库在客户端和服务器之间进行通信。虽然它是从底层套接字中抽象出来的,但它仍然不支持中间件功能。
目前,我的客户端是一个 Adobe Flex GUI 和两个服务器端进程(一个 java 和另一个 C++)。将来,客户端和服务器端可能会使用其他语言开发其他服务,例如 .NET
专家们对这些选择有何看法,以及从经验中哪些方法可以在不影响性能的情况下运作良好。开发人员还有其他选择吗?
谢谢迪斯