高性能要从底层原理说起,既然是一个RPC框架,主要干的就是远程过程(方法)调用,那么提升性能就要从最关键、最耗时的两方面入手:序列化和网络通信
序列化:
我们学习java网络开发时知道,本地的对象子要在网络上传输,必须实现Serializable接口,也就是序列化,我们序列化的方案有很多:xml、json、二进制流..其中最高效的就是二进制流(因为计算机就是二进制的),然而Dubbo采用的就是效率最高的二进制
网络通信:
不同于HTTP需要7步走(三次握手和四次挥手),Dubbo采用的时Socket通信机制,一步到位,提升了通信效率,并且可以建立长连接,不用反复连接,直接传输数据
Dubbbo是一款高性能,轻量级的开源java RPC框架,提供了三大能力:1.面向接口的远程调用 2.智能容错和负载均衡 3.服务自动注册和发现
支持多种协议:dubbo,hessian,rmi,http,webservice,thrift,memcached,redis
dubbo官方推荐dubbo协议,dubbo协议的默认端口号是20880
使用dubbo协议,spring配置文件中加入
<dubbo:protocol name="dubbo" port="20880"/>