服务方:
1:新建ServiceHelper

kd.zb_pb.zb_pbim.servicehelper.ServiceFactory
格式固定
kd+云+应用+servicehelper.ServiceFactory
2:mservice提供一个服务
try (TXHandle h = TX.required()) {
try {
}catch (Throwable e){
h.markRollback();
log.error("猪只转入批次失败", e);
throw e;
}
}
服务提供方一般需要开启本地事务
3、在zb-common项目中维护一个自定义参数提供给调用方与被调用方使用,这里参数可以根据自己的接口设计合适的参数,尽量提供批量操作接口
跨云接口有重试机制,接口需要做幂等处理。BaseParam里有一个全局ID,用于幂等性校验,可以在接口接到参数后先对全局消息ID做检查,检查通过再执行自己的业务逻辑,避免重复处理消息。
4:在ServiceFactory中注册新增的服务
服务调用方
1:新增业务场景(系统服务云-配置工具-分布事事务-业务场景配置)
可以自行定义场景编码和分支场景编码,后续在调用时需要用到,如果要调用多个云的服务就要维护多个分支事务
2: 本地事务提交之前先开启全局事务,建议在beforeExecuteOperationTransaction事件中开启
3: 在本地事务中调用远程服务
4: 在顺利执行或者异常处理后提交全局事务,要保证必须执行