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.服务消费者和提供者,定时发送统计数据到监控中心
来源:CSDN
作者:qq_40058686
链接:https://blog.csdn.net/qq_40058686/article/details/104156928