Dubbo整合Spring:在xml配置文件中声明Dubbo的配置项
整合SpringBoot的配置项的名称与Spring中一致,区别是导入starter之后位置不同,直接在配置文件中写就可以
服务提供方的XML配置项,具体配置标签的属性:
1.指定当前服务/应用的名称(
2.指定注册中心位置(
3.指定通信规则,duboo支持多种通信协议,一般建议使用dubbo协议
即在dubbo:protocol标签指定name属性和port即可
4.暴露该服务,指定
暴露服务直接加@Service即可。注意包是dubbo的
配置监控中心:dubbo:monitor属性
整合SpringBoot时在引导类上要加@EnableDubbo注解,开启基于注解的Dubbo功能
SpringBoot项目变为WEB项目,不需要配置打war包,需要导入SpringBOOT-Starter-web依赖之后,在配置文件中配置好server.port直接tomcat运行即可
常规的Spring项目需要打war包并且使用tomcat插件运行
暴露服务:@Service 消费服务:@Reference 注意这里引用的注解都是dubbo的
面向接口调用服务
Duoo还具有负载均衡机制,可以配置选择哪种机制,同时还可以进行服务降级和服务容错,可以直接在admin进行操作,不需要进行参数配置
查看官网文档来对dubbo的各项参数进行配置:
例如配置当前消费者和生产者的统一规则
Dubbo整合SpringBoot配置的其他方法:
1.starter+yml
2.xml+starter+@ImportResource导入配置文件
3.使用注解API格式,将配置文件编码注入
@Reference的参数url指定具体的地址,将采用Dubbo的直连模式
注册中心当即之后,仍然可以调用提供者的服务,原因是消费和服务之间可以通过本地缓存通讯,没有注册中心可以Dubbo直连(类似手动设置缓存)
Dubbo在内部封装了RPC调用的流程,即在内部使用了RPC框架
netty通信框架:netty是基于NIO(非阻塞的IO,同理还有阻塞IO即BIO)通信框架
Dubbo原理:
1.框架设计
Dubbo将所有的小层分为三个大层,分别是表面层即business(面向接口调用服务实现),RPC层(封装RPC调用框架),Remoting(基于netty通信,netty服务器负责监听端口),框架设计如下图:

2.Dubbo的配置文件是如何解析的
Dubbo标签解析器解析对应的配置项,每一项都有对应的类,所以我们在配置的时候可以不选择xml配置,可以自己手动编码配置同理实现了省略标签解析的步骤,将其转换为Dubbo的组件对象,流程图如下:

服务暴露过程:
Netty监听提供方端口,Registry注册中心类使用注册器进行注册服务,哪一种注册中心使用哪一种注册中心实现类,将注册信息写入到注册表中,将注册表中的信息使用静态方法进行注册
服务引用过程(Reference):
研究Dubbo源码时所需要的调试知识:
单步调试:程序向下执行一行,有step over和step into两种。区别是前者是直接在当前代码块向下执行完全的一行,后者是如果该行有方法会自动进入自定义方法中,(不会进入官方类库的方法)
以此类推其他方法:
Force step into:强制进入所有方法的操作,可以进入官方方法
step out:在进入一个方法调试过程中,进行该操作可以强制跳出该方法,到达调用处下一代码行
Drop frame:跳转到当前方法的调用处重新执行,上下文变量也会重置,可以跳转到调用链中任何一个方法
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !