既然有http 请求,为什么还要用rpc(dubbo接口)调用?
2017-10-23 10:03
567 查看
http好比普通话,rpc好比团伙内部黑话。
讲普通话,好处就是谁都听得懂,谁都会讲。
讲黑话,好处是可以更精简、更加保密、更加可定制,坏处就是要求“说”黑话的那一方(client端)也要懂,而且一旦大家都说一种黑话了,换黑话就困难了。
所谓的效率优势是针对http1.1协议来讲的,http2.0协议已经优化编码效率问题,像grpc这种rpc库使用的就是http2.0协议。这么来说吧http容器的性能测试单位通常是kqps,自定义tpc协议则通常是以10kqps到100kqps为基准
简单来说成熟的rpc库相对http容器,跟多的是封装了“服务发现”,"错误重试"一类面向服务的高级特性。可以这么理解,rpc框架是面向服务的更高级的封装。如果把一个http server容器上封装一层服务发现和函数代理调用,那它就已经可以做一个rpc框架了。
所以为什么要用rpc调用?
因为良好的rpc调用是面向服务的封装,针对服务的可用性和效率等都做了优化。单纯使用http调用则缺少了这些特性。
作者:手不要乱摸
链接:https://www.zhihu.com/question/41609070/answer/191965937
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
讲普通话,好处就是谁都听得懂,谁都会讲。
讲黑话,好处是可以更精简、更加保密、更加可定制,坏处就是要求“说”黑话的那一方(client端)也要懂,而且一旦大家都说一种黑话了,换黑话就困难了。
所谓的效率优势是针对http1.1协议来讲的,http2.0协议已经优化编码效率问题,像grpc这种rpc库使用的就是http2.0协议。这么来说吧http容器的性能测试单位通常是kqps,自定义tpc协议则通常是以10kqps到100kqps为基准
简单来说成熟的rpc库相对http容器,跟多的是封装了“服务发现”,"错误重试"一类面向服务的高级特性。可以这么理解,rpc框架是面向服务的更高级的封装。如果把一个http server容器上封装一层服务发现和函数代理调用,那它就已经可以做一个rpc框架了。
所以为什么要用rpc调用?
因为良好的rpc调用是面向服务的封装,针对服务的可用性和效率等都做了优化。单纯使用http调用则缺少了这些特性。
作者:手不要乱摸
链接:https://www.zhihu.com/question/41609070/answer/191965937
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐
- 既然有http 请求,为什么还要用rpc调用?
- post和get请求调用Http接口并拿到数据
- 为什么需要RPC,而不是简单的HTTP接口
- C++调用请求HTTP接口错误的问题
- JAVA发送http get/post请求,调用http接口、方法
- http请求接口,http接口远程调用
- C#通过发送 http 请求调用接口之Get
- Android开发全程记录(十六)——android调用接口发送http请求缓存处理
- java Http中put请求传递参数调用接口
- JAVA发送http get/post请求,调用http接口、方法
- JAVA发送http get/post请求,调用http接口、方法
- JAVA发送http get/post请求、调用http接口、方法
- Http的GET请求与POST请求调用接口
- 为什么需要RPC,而不是简单的HTTP接口
- java HttpUrlConnection get和post 模拟请求 调用接口
- httpClient发送get请求调用接口
- python通过http请求发送soap报文进行webservice接口调用
- JAVA发送http get/post请求,调用http接口、方法
- HttpUtil http请求工具,调用第三方接口
- JAVA发送http get/post请求,调用http接口、方法