2018-03-04 Dubbo知识点集锦


面试到dubbo的时候,可以说一下。


一、Dubbo介绍:
答:
Dubbo是一个分布式服务框架,致力于提供高性能、透明化的远程服务调用方案以及SOA服务治理方案。

Dubbo提供远程服务调用,可以像调用本地服务一样调用远程服务,没有其他API的侵入。

Dubbo具有软负载均衡及容错机制,可在内网F5硬件负载均衡器,降低成本,减少节点。

Dubbo自动发现和注册服务,无需写死服务提供者的地址,注册中兴可以通过接口名查询服务提供者的IP地址,因此可以平滑的添加和删除服务。

二、使用Dubbo遇到的问题:接口方法的入参必须序列化,否则会报错。

三、为什么要使用Dubbo?

答:随着业务的发展,应用的功能和涵盖的业务逻辑越来越复杂,造成代码臃肿,分工不明细。将应用拆分,并

抽取出核心服务来解决上述问题。随着服务的增多,服务的管理也变得非常困难,引入Dubbo可以很好的解决

这些问题。

四、Dubbo架构图

2018-03-04 Dubbo知识点集锦

节点角色说明:

       Provider: 暴露服务的服务提供方。
       Consumer: 调用远程服务的服务消费方。
       Registry: 服务注册与发现的注册中心。
       Monitor: 统计服务的调用次调和调用时间的监控中心。
       Container: 服务运行容器。
这点我觉得非常好,角色分明,可以根据每个节点角色的状态来确定该服务是否正常。

调用关系说明:

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

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

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

3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

dubbo的容错性显而易见,性能方面还没有还得及测,我们系统某页面需要掉5次接口,本来想建议做个缓存,但业务关系不能采纳,还需要研究下dubbo的性能调优问题...