node-dubbo-client v1.1.1
node-dubbo-client
Installation
npm install --save node-dubbo-clientExample
consumer
const dubbo = require('node-dubbo-client');
dubbo.config({});
dubbo
.consumer
.getService({ service: 'test.service', group: 'test', version: '1.0.0' })
.call('testMethod', ['params'])
.then((result) => console.log(result))
.catch((err) => console.error(err));provider
const dubbo = require('node-dubbo-client');
dubbo.config({});
dubbo
.provider
.init({ service: 'node.testService', group: 'node', version: '1.0.0' })
.addMethods({
test: (...args) => Promise.resolve({ result: 'hello world!' }),
})
.listen(3000);Document
dubbo.init(options:object):Promise\<void>
初始化zookeeper连接.
订阅者模式下, service调用会一直阻塞到zookeeper连接创建.
发布者模式下, 本地http server启动后再连接到zookeeper, 并发布服务.
如果两个模式共用, 以发布者模式为准.
options
- description
object- 应用描述- application
string- 当前应用名称 - application.version
string- 当前应用的版本 - dubbo
string- dubbo版本 - pid
number- 进程Id
- application
- dubbo
object- service配置- timeout
number(default: 45 * 1000) - 服务提供者调用超时时间 - enableRetry
boolean(default: true) - 自动重试,服务提供者返回ECONNREFUSED,下线该提供者并重试
- timeout
- registry
object- url
string(required) - options
object- node-zookeeper-client options- sessionTimeout
number(default: 30 * 1000) - spinDelay
number(default: 1000) - retries
number(default: 0)
- sessionTimeout
- url
- loadBalance
string(default: 'round') - 订阅者调用的负载方式(round/random) - debug
boolean(default: false) - 是否输出zookeeper推送的消息.
dubbo.dispose():Promise\<void>
订阅者模式下, 只关闭zookeeper连接.
发布者模式下,会依次进行以下操作: 1. 从zookeeper上移除当前服务节点; 2. 关闭zookeeper连接; 3. 关闭http服务器.
dubbo.onLog(calbak:function(msg:string)):void
日志输出, 如果给予回调函数, 默认使用debug 输出日志.
- options.debug=true, it will print zookeeper listener result.
dubbo.consumer
getService(serviceInfo:object):serviceObject
- serviceInfo
object- service
string(required) 服务的namespace - group
string(required) - version
string(required)
- service
serviceObject.call(methodName:string, data:Array<*>)
// 后端提供者
public String testMethod(int a, int b, int c);// consumer 方法调用
const service = dubbo.consumer.getService({});
service
.call('testMethod',[1, 2, 3])
.then((str) => {})
.catch(() => {});dubbo.provider
init(serviceInfo:object):Provider
provider基本信息声明.
Provider.addMethods(functions:object):Provider
批量添加provider方法
provider.addMethods({
method1: (a, b, c) => {
return 'something';
},
});Provider.addMethod(name:string, handler:function(...params:*):*):Provider
添加单个provider方法
Provider.listen(port:number):Promise
启动provider的http服务器.该方法应该在provider配置完成之后调用
Provider.configServer(serverOpts:object):Provider
- serverOpts
object- limit
stringraw-body options.limit
- limit
配置http服务, 目前只提供raw-body的配置项.
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
