egg-dubbo
Egg连接Dubbo服务插件
Install
$ npm i egg-dubbo --save
Usage
// {app_root}/config/plugin.jsexportseggDubbo = enable: true package: 'egg-dubbo';
Configuration
// {app_root}/config/config.default.jsexportsdubbo = // 默认服务版本 version: '2.0.0' // 默认超时时间 timeout: 6000 // 服务列表 list: // 多服务配置, 例如goods表示商品系统应用的服务 goods: applicationName: 'your_application_ame' register: 'your_zk_service' dubboVer: '2.5.3' ;
see config/config.default.js for more detail.
Example
1.存放服务文件于app/service/rpc目录
2.每个服务文件格式,以GoodsRpcService.js为例:
'use strict'; module { /** * 商品RPC服务 */ RpcService { superapp; thischannel = 'goods'; // 自定义频道列表 thisinterfaceUrl = 'com.xxx.product.goods.rpc.goods.service.RpcGoodsService'; // JAVA服务类 } // ========= 业务签名 ======== /** * 注册方法签名 */ { thismethodSignature = // 依据商品ID获取商品信息 '$class': 'java.lang.Long' '$': goodsId // 依据商品对像查询商品关联列表 $class: 'com.xxx.product.goods.rpc.goods.query.RpcGoodsInfoQuery' $: cid: $class: 'java.lang.Long' $: goodcid pageNo: $class: 'java.lang.Integer' $: goodpageNo pageSize: $class: 'java.lang.Integer' $: goodpageSize ; } // ========= 业务签名 ======== // ======== 业务接口 ========= /** * 简单传参示例 * @param */ * { const resultData = this; return resultData; } /** * 复杂传参示例 * @param * @param * @param */ * { const resultData = this; return resultData; } // ======== 业务接口 ========= // 注册服务 appgoodsService = app; appgoodsService; };
服务调用:
/** * 服务调用示例 * @param */ * { const resultData = thisappgoodsService; return resultData; }
本地Charles调试输出
Questions & Suggestions
Please open an issue here.