Dubbo

两盒软妹~` 提交于 2020-02-03 17:32:29

dubbo是什么?

是阿里巴巴开源的基于Java的高性能RPC分布式服务架构

核心能力:面向接口的远程方法调用,智能容错和负载均衡,服务自动注册和发现

 

为什么要用Dubbo?

使用dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用,灵活扩展,使前端应用能够响应多变的市场需求

 

dubbo与Spring Cloud的区别?

两个没有关联,区别有几点:

1)通信方式不同 : dubbo使用RPC通信,Spring Cloud使用Http RestFul通信

2)服务注册中心不同: dubbo使用ZooKeeper   Spring Cloud使用 eureka

 

dubbo内置的服务容器?

Spring Container

Jetty Container

Log4j Container

dubbo的服务容器只是一个简单的main方法,并加载一个简单的spring容器,用于暴露服务

 

dubbo里面的节点角色?

服务提供方 provider

服务消费方 consumer

注册中心 registry

监控中心 monitor

运行容器 container

 

dubbo默认使用ZooKeeper作为注册中心,还有redis,multicast,simple(不推荐)

 

dubbo的配置方式?

1)spring配置

2)java API配置

 

在Provider上可以配置的Consumer端的属性有哪些?

1.timeout

2.retries:失败重试次数

3.loadbalance:负载均衡算法(默认随机)

4.actives:消费者端

 

dubbo启动时如果依赖的服务不可用会发生什么?

不可用时会抛出异常,组织Spring初始化

 

dubbo的负载均衡策略?

1)随机,按权重设置随机概率(默认)

2)轮询

3)最少活跃调用数

4)一致性Hash

 

dubbo支持服务多协议吗?

支持,在不同服务上支持不同协议或者在同一服务上同时支持多种协议

 

服务上线怎么兼容旧版本?

可以用版本号过度,多个不同版本的服务注册到注册中心,版本号不同的服务相互间不引用

 

dubbo提供了声明式缓存,用于加速热门数据的访问速度,以减少用户加缓存的工作量

dubbo服务默认是同步等待结果阻塞的,支持异步调用

 

容错策略:读操作建议使用failover失败自动切换(默认重试两次其他服务器),写操作建议使用failfast快速失败(失败就报错)

 

dubbo调用过程?

1.服务容器负责启动,加载,运行服务提供者

2.服务提供者在启动时,向注册中心注册自己提供的服务

3.服务消费者在启动时,向注册中心订阅自己所需的服务

4.注册中心返回服务提供者地址列表给服务消费者,如果有变更,将变更数据给消费者

5.服务消费者从提供者地址列表中,基于负载均衡算法,选一台服务器进行调用,调用失败则选另一台

6.服务消费者和提供者,定时发送统计数据到监控中心

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!