首页 > RPC中数据的序列化处理

RPC中数据的序列化处理

大家先看下这个问题
http://.com/q/1010000002657730?_ea=168700
由这个问题想到另外的问题
如果我使用PHPJava进行PRC调用的话,用哪种RPC和序列化方案能达到最佳性能呢?
举个例子
因为我们知道HTTP不是长连接的,如果是用HTTP进行RPC,创建连接都会耗费很多的资源(当然用keep-alive除外,不过PHP的curl能keep-alive么?)


我哪种RPC框架貌似不重要,重要的应该是数据压缩,也就是序列化为传输数据的方式吧。推荐google protobuffer,业界成熟的数据压缩方案。但是 protobuffer 好像只提供了java和python的sdk。

所以,如果你想php通过RPC调用java的话,只能自己实现一套了。

php可以用socket 来建立tcp连接。不用curl。


PHP CURL可以复用连接的(keep-alive),Multi_CURL也行。说到效率的话,本身http就不是一个高效率的协议(你看看那堆对你来说可以去掉的头就知道了),如果你定位在基于http的rpc的话,本身也就不会太高了。直接基于socket,并尽量使用二进制方式序列化,可能效率和性能方面会好一点,当然,不好之处就是开发难度增加、通用性方面打折。

【热门文章】
【热门文章】