『微服务治理之Dubbo』dubbo与http请求的区别

分布式项目远程调用,大部分都是使用dubbo,那dubbo跟http请求有什么别人呢,为什么不直接用http请求呢,也不需要配置,非常简单,所以今天拿dubbo和http做一下比较。


首先从协议层开始比较
TCP/IP 层级模型结构

在这里插入图片描述

网络结构作用
应用层直接对应用程序提供服务,定义了用于在网络中进行通信和传输数据的接口
表示层定义不同的系统中数据的传输格式,编码和解码规范等
会话层管理用户的会话,控制用户间逻辑连接的建立和中断
传输层管理着网络中的端到端的数据传输
网络层定义网络设备间如何传输数据
数据链路层将上面的网络层的数据包封装成数据帧,便于物理层传输
物理层从第七层传到第一层,接受方则相反,主要就是传输二进制数据。

从上面图中可以看出五层协议结构里面,表示层和会话层合并到了应用层,因为HTTP是应用层协议,而TCP/IP是传输层协议,因此使用TCP/IP协议的dubbo自然性能要比HTTP协议快。


再从socket连接来比较
socket连接
dubbo默认使用socket长连接,即首次访问建立连接以后,后续网络请求使用相同的网络通道,这样避免了多次重复创建TCP连接的开销

http1.1协议默认使用短连接,每次请求均需要进行三次握手,而http2.0协议开始将默认socket连接改为了长连接

http协议有一个特效,会有一系列的http header,这些内容往往会占用几k的数据,访问量非常大的时候,这些数据也是一种负担,而使用dubbo,协议可以自定义,这些无关数据可以省掉。

再从封装性来聊一聊
封装
简单来说成熟的rpc库相对http容器,更多的是封装了“服务发现”,"错误重试,负载均衡"一类面向服务的高级特性。可以这么理解,rpc框架是面向服务的更高级的封装。如果把一个http server容器上封装一层服务发现和函数代理调用,那它就已经可以做一个rpc框架了。

安全方面呢,谁的安全性更好呢
安全
dubbo设计之初基本都是考虑内网通讯,安全上基本没什么考虑,比http的安全差了很远
小结:

小编就总结到这里,欢迎大家来补充()

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值