四、dubbo的执行分为几个步骤?
答:
①服务装载:将服务装载在容器中,而后开始准备注册服务。读配置文件解析服务。
②解析服务:过程咱就不了解了,反正就是讲Bean属性转成url的参数,而后将Url传给Protocol扩展点
③暴露服务:基于扩展点的Adaptive机制,根据URL的协议头,进行不一样协议的服务暴露和引用,分为两种方式:
(1)直接暴露服务端口(通常在开发过程当中,就不用麻烦的去使用注册中心了)
服务调用和提供在同一个电脑上,只须要打开服务的端口就行。
(2)向注册中心暴露服务(须要将服务的IP和端口一同暴露给注册中心)
将export参数中的提供者URL先注册到注册中心,再从新传给Protocol扩展点进行暴露: Dubbo://service-host/com.xxx.TxxService?version=1.0.0
④引用服务:由于暴露服务的方式有两种,所以引用服务也对应的有两种
(1)直接引用服务
(2)从注册中心发现引用服务
五、哔哔赖赖,能耐你讲讲什么是暴露服务?
答:不服现实碰一碰,你看我扎不扎你就完了!
【1】ServiceConfig类拿到对外提供服务的实际类ref
【2】ProxyFactory类的getInvoker方法使用ref生成一个AbstractProxyInvoker实例,完成具体服务到invoker的转化。
【接下来就是Invoker转换到Exporter的过程】
【3】在DubboProtocol类的export方法,它主要是打开socket侦听服务,并接收客户端发来的各类请求,通信细节由dubbo本身实现。
六、请问SBDZ(springBoot+Dubbo+Zookeeper)是怎么利用RPC调用服务的?
答:既然是引用服务,那么就要从注册中心拿到服务的接口,因此这个客户端项目必须联通Zookeeper注册中心。使用Dubbo的reference获取注册中心的interface指定的接口服务,经过ID属性值进行匹配dubbo的service中的ref。在消费端consumer消费端建立controller来调用接口,使用注解注入实体节课完成调用。
七、如今能够说说Dubbo的执行流程了吧?
答:我以为分为6步执行
【1启动】启动时先启动Provider,虽然启动Spring容器时,自动启动dubbo的Provider。spring
【2注册】注册:Provider在启动后自动会去注册内容。
注册的内容包括:Provider的IP、Provider的端口、Provider对外提供的接口、方法、dubbo版本号、访问Provider的协议
【3订阅】当Consumer启动时,自动去Registry获取到全部已注册的服务信息
【4通知】当Provider的信息发生变化时,自动由Registry向Consumer推送通知
【5调用】Consumer调用Provider中的方法,是同步请求。
【6次数】每隔2分钟,Provider和Consumer自动向Monitor发送访问次数,Monitor进行统计。socket