Dubbo消费端直连提供者(开发调试)
Dubbo 官方文档:
用户指南 >> 示例 >> 直连提供者
注意点:
1、 直连提供者只需要在消费端设置,url指向本地的服务地址,如此便可以直接调用本地服务。
通过打断点本地调试,客户端可能回报错:“服务异常,异常代码:2:如有疑问:请联系管理员!”,是正常的,因为我们断点拦截了,dubbo请求超时。
2、 ${user.home}指的是当前操作系统用户目录,如 Win7 系统 Administrator 的用户目录就是 C:\Users\Administrator
dubbo-resolve.properties
//key是服务名,value是服务提供者ip
wusc.edu.pay.facade.user.service.MerchantOnlineFacade=dubbo\://localhost\:20818
Dubbo服务只订阅(开发调试)
Dubbo官方文档:
用户指南 >> 示例 >> 只订阅
如果代码写了一部分,需要测试,需要将本地的服务注册到注册中心,可是其他的消费者也可能消费到这个服务提供者,会导致报错,为了确保本地的调试不影响公共的环境,可以利用服务只订阅。
就是连到了注册中心,但是没有把他的服务注册到注册中心,但是能订阅到依赖的服务。
就像用户服务本身就是服务,依赖于其他的服务,比如账户服务,因为依赖于其他服务,那么在启动的过程中,就需要连到注册中心,使得能够订阅的到依赖的服务。但是用户服务,本身也是一个服务提供者,本地开发需要连接用户服务,通过配置的方式确保服务不注册到注册中心,在开发的过程中,需要连接到用户服务,就可以利用直连提供者进行本地的调试。
需配置:
registry=“false”
上图中只订阅的第一人称是:Develop Provider
上面例子中的用户服务的dubbo配置文件
//这里虽然还是配置的注册中心,但是只是去连接,使得能够订阅到依赖的服务,并没有把自己注册进去
dubbo.registry.address=192.168.1.71:2181
...
<dubbo:redistry protocol="zookeeper" address="${dubbo.redistry.address}" registry="false">
registry="false"这个配置的意思就是自己本身不想服务中心注册,但是可以订阅依赖的服务
就像上面的例子中的用户服务,不注册,但是可以订阅自己依赖的账户服务。
不加registry=“false”,这个配置的时候,启动本地服务在dubbo管控台是能够看到本地的应用注册进去的,这样测试人员进行测试的时候就可能调用到本地正在开发的这个服务,开启了这个配置之后,在dubbo的管控台中这个服务就消失了,所以本地的消费者不论怎么调用都不会调用到这个正在开发的服务了。
注意点:
1、“只订阅”指的是需要做开发调试的服务提供者,只向注册中心订阅其所依赖的服务,但 不向注册中心注册其本身可以提供的服务。
2、“只订阅”需要结合“直连提供者”配置来进行调用测试。
示例:
在provider配置
<dubbo:redistry protocol="zookeeper" address="${dubbo.redistry.address}" registry="false">
在consumer配置
<dubbo:reference id="xxx" interface="xxx" url="localhost:2089">
Dubbo服务只注册
Dubbo 官方文档:
用户指南 >> 示例 >> 只注册