Dubbo

Dubbo是什么

Dubbo是一个高性能、轻量级的Java RPC框架,由阿里巴巴开源。它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡,以及服务自动注册和发现。Dubbo是一个分布式服务框架,致力于提供透明化的RPC远程服务调用方案,以及SOA服务治理方案。它支持服务注册与发现、负载均衡、容错、分布式调用等功能,并且可以和Spring框架无缝集成。Dubbo使用基于RPC的通信模型,具有较高的性能和可扩展性,支持多种传输协议和序列化方式。在一些服务治理功能上,Dubbo依赖于第三方组件,如Zookeeper或Apollo等。

1、使用Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场需求。
2、分布式架构可以承受更大规模的并发流量

Dubbo 和 Spring Cloud 有什么区别

1、通信方式不同:Dubbo 使用的是 RPC 通信,而Spring Cloud 使用的是HTTP RESTFul 方式。
2、组成不一样:
dubbo的服务注册中心为Zookeerper,服务监控中心为dubbo-monitor,无消息总线,服务跟踪、批量任务等组件;
spring-cloud的服务注册中心为spring-cloud netflix enruka,服务监控中心为spring-boot admin,有消息总线,数据流、服务跟踪、批量任务等组件

Dubbo的核心组件

1、provide:暴露服务的服务提供方
2、consumer:调用远程服务的服务消费方
3、registry:服务注册于发现的注册中心
4、monitor:统计服务调用次数和调用时间的监控中心
5、container:服务运行容器

Dubbo内置了哪几种服务容器

三种服务容器:
1、Spring Container
2、Jetty Container
3、Log4j Container
Dubbo 的服务容器只是一个简单的 Main 方法,并加载一个简单的 Spring 容器,用于暴露服务。

Dubbo的几种负载均衡策略

1、random loadbalance:安权重设置随机概率(默认);
2、roundrobin loadbalance:轮寻,按照公约后权重设置轮训比例;
3、lastactive loadbalance:最少活跃调用数,若相同则随机;
4、consistenthash loadbalance:一致性hash,相同参数的请求总是发送到同一提供者。

Dubbo服务之间的调用是阻塞的吗

默认是同步等待结果阻塞的,支持异步调用。
Dubbo 是基于 NIO 的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小,异步调用会返回一个 Future 对象。
Dubbo暂时不支持分布式事务。

你可能感兴趣的:(dubbo)