Dubbo配置详解

Dubbo提供了多种灵活的配置,接下来我们一一介绍Dobbo配置使用。

配置方式介绍

XML文件配置

可以在resource目录下配置provider.xml和consumer.xml文件。

dubbo3 配置中心的作用 dubbo配置类_java


属性配置

Dubbo可以自动加载classpath根目录下的dubbo.properties

dubbo3 配置中心的作用 dubbo配置类_jar包_02


API配置

Dubbo也支持面向对象配置,通过类设置属性的方式

dubbo3 配置中心的作用 dubbo配置类_dubbo3 配置中心的作用_03


值得注意的是,不管是以哪种方式配置Dobbo都会调用 service.export()方法。只不过API配置是需要显示的调用,其他配置都是在源码里调用的,朋友们借一步说话,在了解多种配置方式的同时,也可以思考Dobbo是如果将这些配置暴露出去的,原理后面会深入的分析。注解配置

服务提供方通过Dubbo的@Service注解暴露接口。

dubbo3 配置中心的作用 dubbo配置类_优先级_04


服务消费方引入接口,可以通过Dubbo的@Reference注解

dubbo3 配置中心的作用 dubbo配置类_多路复用_05


外部配置

可以理解为dubbo.properties的外部化存储,也就是properties配置文件不在jar包内,而是在jar包外。这个就不在展示示例了,可以参考上面讲的 “属性配置” 只不过文件存放的位置不一样。外部配置可以分为全局配置和应用配置,全局配置对所有的应用生效,应用配置只对单个应用有效。所以外部配置更适合将一些公共配置如注册中心、元数据中心配置等抽取以便做集中管理。

到此Dubbo所有的配置都在此,那么有同学问了,我如果同时都配置了Dubbo又如何读取。

配置优先级

JVM -D参数 -------》 外部配置 -------》 API配置 ------》 XML配置
优先级由高到低,高的会覆盖低的配置属性。

如果了解Spring Boot的同学,会发现这优先级读取和 Spring Boot的相似。喜欢唠嗑的我又借一步说话,当你对各种技术了解的越深入会发现他们底层许多技术很相似,有的可以说是直接拿别人的来用。比如Dubbo使用的Netty通信框架用的IO多路复用和Redis的IO多路复用很相似。这次就讲到这了,这也是我第一次写博客…哈哈 先给自己定个小目标 一年至少出20篇精辟的java知识相关的博客。