npm.io
1.0.5 • Published 8 years ago

egg-dubbo

Licence
MIT
Version
1.0.5
Deps
13
Size
481 kB
Vulns
0
Weekly
0
Stars
22

egg-dubbo

NPM version build status Test coverage David deps Known Vulnerabilities

Egg连接Dubbo服务插件

Install

$ npm i egg-dubbo --save

Usage

// {app_root}/config/plugin.js
exports.eggDubbo = {
  enable: true,
  package: 'egg-dubbo',
};

Configuration

// {app_root}/config/config.default.js
exports.dubbo = {
  // 默认服务版本
  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目录

Service Preview Gif 1

2.每个服务文件格式,以GoodsRpcService.js为例:
'use strict';

module.exports = (app) => {

  /**
   * 商品RPC服务
   */
  class GoodsRpcService extends app.RpcService {
    constructor() {
      super(app);
      this.channel = 'goods'; // 自定义频道列表
      this.interfaceUrl = 'com.xxx.product.goods.rpc.goods.service.RpcGoodsService'; // JAVA服务类
    }

    // ========= 业务签名 ========
    /**
     * 注册方法签名
     */
    signature() {
      this.methodSignature = {

        // 依据商品ID获取商品信息
        getSimpleGoods: (goodsId) => [{
          '$class': 'java.lang.Long',
          '
服务调用:
  /**
   * 服务调用示例
   * @param {*} goodsId 
   */
  * getSimpleGoods(goodsId) {
      const resultData = yield this.app.goodsService.getSimpleGoods(goodsId);

      return resultData;
  }
本地Charles调试输出

Invoke Preview Gif 1

Questions & Suggestions

Please open an issue here.

License

MIT

: goodsId }], // 依据商品对像查询商品关联列表 selectByPage: (good) => [ { $class: 'com.xxx.product.goods.rpc.goods.query.RpcGoodsInfoQuery', $: { cid: { $class: 'java.lang.Long', $: good.cid }, pageNo: { $class: 'java.lang.Integer', $: good.pageNo }, pageSize: { $class: 'java.lang.Integer', $: good.pageSize } } } ] }; } // ========= 业务签名 ======== // ======== 业务接口 ========= /** * 简单传参示例 * @param {*} goodsId */ * getSimpleGoods(goodsId) { const resultData = yield this.request('getSimpleGoods', goodsId); return resultData; } /** * 复杂传参示例 * @param {*} cid * @param {*} pageNo * @param {*} pageSize */ * selectByPage(cid, pageNo, pageSize) { const resultData = yield this.request('selectByPage', { cid, pageNo, pageSize }); return resultData; } // ======== 业务接口 ========= } // 注册服务 app.goodsService = new GoodsRpcService(app); app.goodsService.update(); };
服务调用:
__CODE_BLOCK_4__
本地Charles调试输出

Invoke Preview Gif 1

Questions & Suggestions

Please open an issue here.

License

MIT