Dubbo剖析-服务直连
2018-03-14 本文已影响62人
阿里加多
一、前言
为了方便开发及测试,一般需要绕过注册中心,只测试指定ip的服务提供者,这时候服务消费方和服务提供方就是点对点直联方式。这时候服务消费方会忽略注册中心的提供者列表。另外直连方式以服务接口为单位,假如A 接口配置点对点,不影响 B 接口从注册中心获取列表。
二、直连方法
- 通过-D参数指定
在服务消费进程启动时候 JVM 启动参数中加入-D参数映射服务地址 ,如:
-Dcom.test.UserServiceBo=dubbo://30.8.59.182:20880;则标示当调用com.test.UserServiceBo接口时候访问30.8.59.182:20880提供的服务,忽略zk发现列表。 - 通过 XML 配置
如果是XML方式点对点,可在 <dubbo:reference> 中配置 url 指向提供者,将绕过注册中
心,多个地址用分号隔开,配置如下:
<dubbo:reference id="userService" interface="com.test.UserServiceBo" group="dubbo" version="1.0.0" timeout="3000" url="dubbo://30.8.59.182:20880"/> - 通过文件映射
如果服务比较多,也可以用文件映射,用 -Ddubbo.resolve.file 指定映射文件路径,此配置优先级高于 <dubbo:reference> 中的配置 ,如:
java -Ddubbo.resolve.file=xxx.properties
然后在映射文件 xxx.properties 中加入配置,其中 key 为服务名,value 为服务提供者
URL:
com.test.UserServiceBo=dubbo://30.8.59.182:20880
注:为了避免复杂化线上环境,不要在线上使用这个功能,只应在测试阶段使用。
欢迎大家加入知识星球,在知识星球里面我们会深入讨论Java并发编程,以及JUC包源码;Java类加载器原理;Spring,Springboot,Tomcat,Dubbo等开源框架的使用以及源码剖析;分享作者从毕业到现在一路走来的学习经验,如何高效学习,如何阅读源码;讨论职业面试时候会经常遇到的问题以及如何作答,读者可以识别下面二维码加入:
image