dubbo

使用说明
功能

自动装配

  1. 接入 prestop 勾子
  2. 启动检测:方法返回结果必须是 CommonResult、CompletableFuture
  3. 日志打印
  4. 全链路支持

参数自动加载

  1. dubbo.protocol.serialization = jackson
    a. 以 JacksonUtil 标准进行序列化
    b. ⚠️ 我们dubbo的出入参,无需声明 implements Serializable
  2. dubbo.provider.warmup = 60000
    a. provider 预热时间设置为 60s
  3. dubbo.provider.retries = 0
    a. 默认不主动重试
  4. dubbo.consumer.retries = 0
    a. 默认不主动重试,如果读请求,请客户端自行设置重试
  5. dubbo.consumer.timeout = 3000
    a. 客户端超时会主动断开,原dubbo默认1s,改为3s
  6. dubbo.provider.timeout = 5000
    a. provider 超时打印日志时间改为 5s
  7. dubbo.consumer.validation = true
    a. 默认开启校验
  8. dubbo.provider.validation = true
    a. 默认开启校验
  9. dubbo.application.metadata-type = remote
    a. metadata-type 存储在 nacos 的配置中心,设置为 remote
    b. 应用必须配置 dubbo.config-center 的相关数据

开发调试接口
● ⚠️ 生产环境禁止打开该功能
● 本地环境配置: xx.dubbo.open-api=true
● 可使用 POST 接口对当前机器的 dubbo 接口进行调试
○ /dubbo/callApi

curl ‘http://localhost:8080/dubbo/callApi’
-H ‘content-type: application/json’
–data-raw $‘{“interfaceName”:“com.xx.supply.demo.test.api.TestFa”,“method”:“test”,“params”:[{“reqParam”:“测试”}]}’
–compressed

{“code”:“SUCCESS”,“data”:{“respParam”:“测试返回”}}

循环调用检测
● 接口设计时,应该避免循环调用进程,不允许一个功能 wms -> plm -> wms 这样进行调用。如果出现这种情况,后产生 error 日志:xxDubbo-循环调用检测,发现循环调用,本应用:wms,原调用链:wms,plm
● 可根据配置选择循环调用是否抛出Exception、打印的日志等级

GlobalContext 支持
● 支持跨服务之间通过 dubbo 传输 GlobalContext 数据

Exception 封装 CommonResult
● 对于 dubbo provider,如果抛出异常,会将异常转换为 CommonResult,并在 procider 中打印相关堆栈信息,堆栈信息不跨应用传递
● 对于 dubbo consumer,接到的结构,会是对象。接口层的数据均以对象的形式传输。
● 若 dubbo consumer 需要将 provider 的响应直接重新转换为异常,请使用:DubboResponseUtil.checkCodeAndGetData

如何引入

com.xx.support
xx-dubbo-starter

如何配置
特殊配置
key
说明
特别注意
xx.dubbo.open-api
用于本地 http 调试 dubbo 接口,会将 http 协议转换为 dubbo 协议进行调用
⚠️ 生产环境禁止开启

local环境
⚠️ local 环境,必须将 dubbo 服务注册关闭,避免开发过程中互相影响
dubbo:
registry:
register: false

其他环境
推荐配置
dubbo:
application:
name: ${spring.application.name}
protocol:
name: dubbo
port: 20883
registry:
address: nacos://47.107.146.224:30004
parameters:
namespace: 091d7eb9-512c-47c6-842a-4197e042229b
group: dubbo
config-center:
namespace: 091d7eb9-512c-47c6-842a-4197e042229b
group: dubbo

版本更新

1.0.0

  1. 引入 dubbo 3.1.1 依赖
  2. 自动装配
  3. 参数自动加载
  4. 开发调试接口
  5. 循环调用检测
  6. GlobalContext 支持
  7. Exception 封装为 CommonResult

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