主要优缺点
SpringCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大
dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决
springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级
dubbo的注册中心可以选择zeekeeper,redis等多种,springcloud的注册中心只能用eureka或者自研
dubbo由于是二进制的传输,占用带宽会更少
服务注册:
针对分布式领域著名的CAP理论:
C—数据一致性
A——服务可用性
P——服务对网络分区故障的容错性
Zookeeper 保证的是CP ,但对于服务发现而言,可用性比数据一致性更加重要 ,而 Eureka 设计则遵循AP原则 。
调用方式:
Dubbo 使用 RPC 通讯协议,提供序列化方式如下:
Dubbo:Dubbo 缺省协议采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
RMI:RMI 协议采用 JDK 标准的 java.rmi.* 实现,采用阻塞式短连接和 JDK 标准序列化方式。
Hessian:Hessian 协议用于集成 Hessian 的服务,Hessian 底层采用 HTTP 通讯,采用 Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现。
HTTP:采用 Spring 的 Http Invoker 实现。
Webservice:基于 CXF 的 frontend-simple 和 transports-http 实现。
Spring Cloud
Spring Cloud 使用 HTTP 协议的 REST API。
参考文档:
https://blog.csdn.net/zhangweiwei2020/article/details/78646252