点击上方 "程序员小乐"关注, 星标或置顶一起成长
后台回复“大礼包”有惊喜礼包!
每日英文
If you have choices, choose the best. If you have no choice, do the best.
如果有得选,就选最好的。如果没得选,就尽力做到最好。
每日掏心话
伪装了多久,终于将自己的心变成石头,可突然想起你时,疼的感觉依然那么熟悉!
来自:Java仓库 | 责编:乐乐
程序员小乐(ID:study_tech)第 1102 次推文
往日回顾:IntelliJ IDEA 2020.2.4款 神级超级牛逼插件推荐(自用,真的超级牛逼)
正文
01
请说一下rpc和http的区别?
一、区别:
1、传输协议
RPC,可以基于TCP协议,也可以基于HTTP协议
HTTP,基于HTTP协议
2、传输效率
RPC,使⽤用⾃自定义的TCP协议,可以让请求报⽂文体积更更⼩小,或者使⽤用HTTP2协议,也可以很好的减少报⽂文的体积,提⾼高传输效率
HTTP,如果是基于HTTP1.1的协议,请求中会包含很多⽆无⽤用的内容,如果是基于HTTP2.0,那么简单的封装以下是可以作为⼀一个RPC来使⽤用的,这时标准RPC框架更更多的是服务治理理
3、性能消耗,主要在于序列列化和反序列列化的耗时
RPC,可以基于thrift实现⾼高效的⼆二进制传输
HTTP,⼤大部分是通过json来实现的,字节⼤大⼩小和序列列化耗时都⽐比thrift要更更消耗性能
在公众号顶级架构师回复“架构整洁”,获取惊喜礼包。
4、负载均衡
RPC,基本都⾃自带了了负载均衡策略略
HTTP,需要配置Nginx,HAProxy来实现
5、服务治理(下游服务新增,重启,下线时如何不不影响上游调⽤用者)
RPC,能做到⾃自动通知,不不影响上游
HTTP,需要事先通知,修改Nginx/HAProxy配置
二、总结:
RPC主要⽤用于公司内部的服务调⽤用,性能消耗低,传输效率⾼高,服务治理理⽅方便便。HTTP主要⽤用于对外的异构环境,浏览器器接⼝口调⽤用,APP接⼝口调⽤用,第三⽅方接⼝口调⽤用等。
PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
猜你还想看
动手了?刚刚,万亿美团遭反垄断诉讼,只因"封杀"支付宝!淘宝天猫总裁蒋凡被举报,中止认定杭州高层次人才!
BAT等大厂Java面试经验总结
别找了,想获取 Java大厂面试题学习资料
扫下方二维码回复「手册」就好了
嘿,你在看吗?