dubbo URL

URL

  • 所有扩展点参数都包含URL参数,URL作为上下文信息贯穿整个扩展点设计体系。
  • URL采用标准格式:protocol://username:password@host:port/path?key=value&key=value

日志

  • 如果不可恢复或需要报警,打印ERROR日志。
  • 如果可恢复异常,或瞬时的状态不一致,打印WARN日志。
  • 正常运行时的中间状态提示,打印INFO日志。

坏味道

(+) (#)

这里记录的是Dubbo设计或实现不优雅的地方。

URL转换

1. 点对点暴露和引用服务

1.1. 直接暴露服务:
EXPORT(dubbo://provider-address/com.xxx.XxxService?version=1.0.0")

1.2. 点对点直连服务:
REFER(dubbo://provider-address/com.xxx.XxxService?version=1.0.0)

2. 通过注册中心暴露服务

2.1. 向注册中心暴露服务:
EXPORT(registry://registry-address/com.alibaba.dubbo.registry.RegistrySerevice?registry=dubbo&export=ENCODE(dubbo://provider-address/com.xxx.XxxService?version=1.0.0))

2.2. 获取注册中心:url.setProtocol(url.getParameter("registry", "dubbo"))
GETREGISTRY(dubbo://registry-address/com.alibaba.dubbo.registry.RegistrySerevice)

2.3. 注册服务地址:url.getParameterAndDecoded("export"))
REGISTER(dubbo://provider-address/com.xxx.XxxService?version=1.0.0)

3. 通过注册中心引用服务

3.1. 从注册中心订阅服务:
REFER(registry://registry-address/com.alibaba.dubbo.registry.RegistrySerevice?registry=dubbo&refer=ENCODE(version=1.0.0))

3.2. 获取注册中心:url.setProtocol(url.getParameter("registry", "dubbo"))
GETREGISTRY(dubbo://registry-address/com.alibaba.dubbo.registry.RegistrySerevice)

3.3. 订阅服务地址:url.addParameters(url.getParameterAndDecoded("refer"))
SUBSCRIBE(dubbo://registry-address/com.xxx.XxxService?version=1.0.0)

3.4. 通知服务地址:url.addParameters(url.getParameterAndDecoded("refer"))
NOTIFY(dubbo://provider-address/com.xxx.XxxService?version=1.0.0)

4. 注册中心推送路由规则

4.1. 注册中心路由规则推送:
NOTIFY(route://registry-address/com.xxx.XxxService?router=script&type=js&rule=ENCODE(function{...}))

4.2. 获取路由器:url.setProtocol(url.getParameter("router", "script"))
GETROUTE(script://registry-address/com.xxx.XxxService?type=js&rule=ENCODE(function{...}))

5. 从文件加载路由规则

5.1. 从文件加载路由规则:
GETROUTE(file://path/file.js?router=script)

5.2. 获取路由器:url.setProtocol(url.getParameter("router", "script")).addParameter("type", SUFFIX(file)).addParameter("rule", READ(file))
GETROUTE(script://path/file.js?type=js&rule=ENCODE(function{...}))

调用参数

  • path 服务路径
  • group 服务分组
  • version 服务版本
  • dubbo 使用的dubbo版本
  • token 验证令牌
  • timeout 调用超时

http://dubbo.io/Developer+Guide-zh.htm#DeveloperGuide-zh-URL%E8%BD%AC%E6%8D%A2

你可能感兴趣的:(dubbo,java)