最近面试复习dubbo随便写写
*首先什么是dubbo?
dubbo是阿里开源的一个RPC(远程过程调用,是一种支持多种通信协议的思想通常包括了HTTP:Dubbo )框架,主要分为消费端,服务端,还有一个注册中心,通过一个注册中心来实现远程方法调用。
官网:http://dubbo.apache.org/en-us/
*dubbo有什么用?用来解决什么?
首先我们看一下传统的项目框架:
服务A请求通过Nginx(反向代理主要做负载均衡)来分配给下面的服务集群
*思考:这种传统的结构有什么问题呢?
Nginx这个模块过于中心,无论ServiceA的请求还是返回都要经过Nginx。如果Nginx负载过大会严重影响项目。dubbo就可以解决这个问题。
*dubbo是通过什么方法决绝的呢?
先看看dubbo主要的组成部分
- Consumer:调用远程服务的服务消费方
- Registry:服务注册与发现的注册中心
-
Provider:暴露服务的服务提供方
这个注册中心就是用来去中心化的,服务端启动的提供一个地址给注册中心,消费端启动的时候向注册中心获取地址同时提供自己的地址。这样消费端请求和接收都不用经过第三者直接和服务端接触。
思考:那万一注册中心挂了呢?
这里dubbo有个机制,ServiceA在注册中心的到地址后会在本地缓存一份。
常用的注册中心:Zookeeper,rides(本质是一个数据库)
最后的代码实现就不发出来了,按照官网的快速入门很快就可以弄出来。
http://dubbo.apache.org/zh-cn/docs/user/quick-start.html