前言
想要了解Dubbo我们首先需要了解软件架构
1,软件架构的演演变过程(了解)
1,单体架构;
所有功能都集中在一个项目中;
优点:架构简单开发成本低,开发周期短,适合小型项目;
缺点:不易于后期维护和扩展;只能使用一种语言开发;
2,垂直架构:
按照业务功能进行分割形成小的单体项目;
优点:技术栈可扩展,不同的系统key使用不同的语言进行编写;
缺点:功能集中在一个项目中,不利于开发,扩展,维护;
3,SOA架构:
将重复的功能或者模块抽取出来组成组件的形式,对外提供服务,项目与服务之间通过企业服务总线作为通信的桥梁;
优点:重复功能抽取出来提高了开发效率,可用性高,可维护性高
缺点:各系统之间业务不同,很难确定功能或者模块是重复的,抽取服务的力度大;
系统和服务之间耦合度大;
4,微服务架构:
每一个服务独立抽取出来成为一个微服务,抽取的粒度更细致了,遵循单一原则,采用轻量级框架协议传输;
优点:开发效率高,可以针对不同的服务指定优化方案,产品迭代周期更加短,
缺点:维护成本高,技术成本高,对团队的挑战大;
2,什么是Dubbo?
dubbo是阿里开发的一款高性能开源的RPC框架(所谓RPC其实就是一种远程调用的概念),它可以和Spring无缝集成;
3,Dubbo的有哪些好处为什么要用他?
1,Dubbo是开源免费的,很多企业都在用,内部使用Zookeeper保证了高性能和高可用性;
2,Dubbo把核心业务抽取出来独立成服务,形成稳定的服务中心,提高了业务的灵活复用和扩展;
4,Dubbo和SpringCloud有什么区别?
相同:Dubbo和SpringCloud都可以搭建微服务;
区别:
1,通信方式不同,Dubbo使用的是RPC基于接口的远程调用,SpringCloud使用的是基于Http协议的restful风格远程调用;
2,组成部分不同:
Dubbo使用的Zookeeper注册中心SpringCloud使用的Eureka注册中心;
监控中心不同,Dubbo使用的是monitor监控中心,SpringCloud使用的是Springboot Admin
其他方面,如网关,熔断器等方面Dubbo没有集成而Springcloud集成了;
5,dubbo支持的协议有哪些?推荐使用哪一种?
dubbo:// 推荐使用协议;
http://
redis://
webservice://
rest://
hessian://
6,Dubbo的注册与发现服务流程?
7,Dubbo的默认注册中心?还有其他选择吗?
默认使用的是Zookeeper注册中心,推荐使用;
还有Redis,Simple,Multicast,注册中心,但是不推荐使用;
8,在Provider中可以配置的Consumer端属性有哪些?
如:
<dubbo:provider timeout="1"></dubbo:provider>
1)timeout:方法调用超时
2)retries:失败重试次数,默认重试 2 次
3)loadbalance:负载均衡算法,默认随机
4)actives 消费者端,最大并发调用限制
9,dubbo有哪几种负载均衡策略?
随机;
轮询;
一致性hash;
最少活跃调用数;