比较
- dubbo由于是二进制的传输,占用带宽会更少
- springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大
- dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决
- springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级
- dubbo的注册中心可以选择zk,redis等,springcloud的注册中心用eureka或者Consul
- dubbo使用RPC思想而spring cloud采用的是基于HTTP的REST方式
RPC与REST风格
- REST风格
- REST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
- Rest的风格可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信。REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
- 因此请求只要遵循http协议即可,更加灵活
- SpringCloud中的Feign就是Rest风格的调用方式。
- Remote Procedure Call,远程过程调用,就是像调用本地方法一样调用远程方法。
- 数据传输方式:多数RPC框架选择TCP作为传输协议,性能比较好。
- 数据传输内容:请求方需要告知需要调用的函数的名称、参数、等信息。
- 序列化方式:客户端和服务端交互时将参数或结果转化为字节流在网络中传输,那么数据转化为字节流的或者将字节流转换成能读取的固定格式时就需要进行序列化和反序列化