1、基本介绍html
dubbogit
Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。简单的说,Dubbo 就是个服务框架,说白了就是个远程服务调用的分布式框架github
优势:redis
缺点:spring
spring cloud安全
Spring Cloud 基于 Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。网络
优势:架构
缺点:并发
补充:spring cloud目前支持的服务发现框架
euerka | Consul | zookeeper | etcd | |
---|---|---|---|---|
服务健康检查 | 可配支持 | 服务状态,内存,硬盘等 | (弱)长链接,keepalive | 链接心跳 |
多数据中心 | — | 支持 | — | — |
kv 存储服务 | — | 支持 | 支持 | 支持 |
一致性 | — | raft | paxos | raft |
cap | ap | ca | cp | cp |
使用接口(多语言能力) | http(sidecar) | 支持 http 和 dns | 客户端 | http/grpc |
watch 支持 | 支持 long polling/大部分增量 | 全量/支持long polling | 支持 | 支持 long polling |
自身监控 | metrics | metrics | — | metrics |
安全 | — | acl /https | acl | https 支持(弱) |
spring cloud 集成 | 已支持 | 已支持 | 已支持 | 已支持 |
还有Service Mesh 若是用一句话来解释什么是 Service Mesh,能够将它比做是应用程序或者说微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控。
对于编写应用程序来讲通常无须关心 TCP/IP 这一层(好比经过 HTTP 协议的 RESTful 应用),
一样使用 Service Mesh 也就无须关系服务之间的那些原来是经过应用程序或者其余框架实现的事情,好比 Spring Cloud、OSS,如今只要交给 Service Mesh 就能够了。 Service Mesh有一个成熟的产品,微软内部用了近10年的产品,如今命名为Service fabric 开源在GitHub上:https://github.com/Microsoft/service-fabric
2、主要区别
(1)服务调用方式
Q:为何说 Dubbo 比 Spring Cloud 性能要高一些?
A:由于 Dubbo 采用单一长链接和 NIO 异步通信(保持链接/轮询处理),使用自定义报文的 TCP 协议,而且序列化使用定制 Hessian2 框架,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的状况,但不适用于传输大数据的服务调用。而 Spring Cloud 直接使用 HTTP 协议(但也不是强绑定,也可使用 RPC 库,或者采用 HTTP 2.0 + 长连接方式(Fegin 能够灵活设置))。
(2)
参考博文: