服务治理 - Dubbo 面试题及答案
2025/12/19大约 2 分钟
返回Dubbo 面试题索引 第 2/4 章
6.如果Dubbo中provider提供的服务由多个版本怎么办?
可以直接通过Dubbo配置中的version版本来控制多个版本即可。
比如:
<dubbo:service interface="com.xxxx.rent.service.IDemoService" ref="iDemoServiceFirst" version="1.0.0"/>
<dubbo:service interface="com.xxxx.rent.service.IDemoService" ref="iDemoServiceSecond" version="1.0.1"/>老版本 version=1.0.0,
新版本version=1.0.1
7.服务暴露的流程是怎么样的?

1.通过ServiceConfig解析标签,创建dubbo标签解析器来解析dubbo的标签,容器创建完成之后,触发ContextRefreshEvent事件回调开始暴露服务
2.通过proxyFactory.getInvoker方法,并利用javassist或DdkProxyFactory来进行动态代理,将服务暴露接口封装成invoker对象,里面包含了需要执行的方法的对象信息和具体的URL地址。
3.再通过DubboProtocol的实现把包装后的invoker转换成exporter,
4.然后启动服务器server,监听端口
5.最后RegistryProtocol保存URL地址和invoker的映射关系,同时注册到服务中心

8.服务引用的流程是怎么样的?
1.首先客户端根据config文件信息从注册中心订阅服务,首次会全量缓存到本地,后续的更新会监听动态更新到本地。
2.之后DubboProtocol根据provider的地址和接口信息连接到服务端server,开启客户端client,然后创建invoker
3.之后通过invoker为服务接口生成代理对象,这个代理对象用于远程调用provider,至此完成了服务引用

9.Dubbo的注册中心有哪些?

Zookeeper、Redis、Multicast、Simple 等都可以作为Dubbo的注册中心
最近建一些几十个工作内推群,各大城市都有,群里目前已经收集了很多内推岗位,大厂、中厂、小厂、外包都有。 欢迎HR、开发、测试、运维和产品加入。

扫描下方微信,备注:网站+所在城市,即可拉你进工作内推群。
