问题
最近用了谷歌的grpc,所以对rpc和http有一点疑惑,感觉这两个东西功能上是一样的,rpc某个服务监听某一个方法,客户端调用这个方法,返回相应的数据,和http监听某个方法的路由 返回相应的数据好像没有本质上的区别啊?
回答
rpc不仅仅可以用http协议实现。
http只是rpc的载体、传输协议。但是宽泛起来也可以说,是rpc的一种实现。
json(jsonrpc),xml(xmlrpc),protobuf,等都只是一种序列化方法(codec)。
http,tcp,mq等都是传输协议。
rpc中,jsonrpc和xmlrpc一般认为是使用json和xml作为序列化方法,使用http作为传输媒介的rpc协议。
grpc协议,序列化方法是protobuf,传输协议基于HTTP2。