Skip to content

add dubboSetting

Compare
Choose a tag to compare
@hufeng hufeng released this 21 Nov 06:53

Release 2.3.5

作为的dubbo的comsumer,在调用服务端dubbo provider时,

需要动态的去指定一些细碎的dubbo的参数,比如group, version, retry, timeout之类

我们之前充分使用dubbo2.js中的context和middleware的能力,设计了dubbo-invoker

dubbo-invoker很好的承担了这个述求,但是dubbo-invoker也是可以有更好的发挥空间

  1. 更好的cache,不需要每次调用的时候都去获取group,version等信息

  2. 在zk订阅接口的时候需要创建consumer信息写入zookeeper,这个时候也需要group,version等信息这个时候dubbo-invoker有点心有余而力不足

So,基于上诉两点,我们还是直接设计dubboSetting模块传入dubbo对象

How to use?

import {Dubbo, setting} from 'dubbo2.js';

//dubbo-setting
const dubboSetting = setting
  .match('com.alibaba.dubbo.demo.BasicTypeProvider', {
    version: '2.0.0',
  })
  .match(
    [
      'com.alibaba.dubbo.demo.DemoProvider',
      'com.alibaba.dubbo.demo.ErrorProvider',
    ],
    {version: '1.0.0'},
  );

const dubbo = new Dubbo<typeof service>({
  application: {name: '@qianmi/node-dubbo'},
  register: 'localhost:2181',
  service,
  dubboSetting,
});

API

setting.match(predict, {group, version}) // predict support, string, Array, RegExp, Thunk.