Dubbo是阿里开发的RPC框架及服务治理框架. 捐献给了Apache。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
一、Dubbo架构与组件
1)Container: Dubbo依赖Spring容器;2)Provider: 服务的提供者;3)Registry: 注册中心, 用来存放注册的服务信息,Dubbo支持多种注册中心, 但是官方推荐使用Zookeeper作为注册中心。4)Consumer: 服务的使用者;5)Monitor: 监控中心, 用于对Provider和Consumer进行监控. 监控服务是否有效, 监控有多少Consumer。
二、Dubbo的执行流程
1)启动容器, 相当于启动了Provider;2)Provicer将服务注册到注册中心;3)Consumer从注册中心订阅服务;4)如果注册中心发现服务发生了变化, 会唤醒消费者重新订阅服务;5)Consumer远程调用provider中的服务;6)Monitor可以对Provider和Consumer进行监控。
三、Dubbo vs Spring Cloud
1)从性能上来讲:dubbo由于是RPC调用,采用二进制的传输,占用带宽会更少;springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大。但例如Spring Cloud Feign支持对请求和响应的进行GZIP压缩,以提高通信效率。
性能差异2)从社区来讲,Spring Cloud更胜一筹,而且Spring全家桶更加全面,如下图。
网友评论