zoodubbo
A Javascript module for Node.js to connect Dubbo service by node-zookeeper-client.
Features
- Invoke Dubbo service as a Customer.
- Use Zookeeper as the Dubbo Registration Center.
- Only supports the use of the default hessian2 protocol for serialization and deserialization.
- It is not very friendly to support the return value containing an enum type.
Installation
You can install it using npm:
$ npm install zoodubbo
Example
var ZD = ;var zd = // config the addresses of zookeeper conn: 'localhost:2181'; // connect to zookeeperzd; // get a invoker with a service pathvar invoker = zd; // excute a method with parametersvar method = 'getUserByID';var arg1=$class:'int'$:123;invoker;
Documentation
new ZD(conf)
Arguments
-
conf {Object} - An object to set the instance options. Currently available options are:
dubbo
{String} - Dubbo version information.
The following content could reference: https://github.com/alexguan/node-zookeeper-client#client-createclientconnectionstring-options
conn
{String} - Just like connectionString of node-zookeeper-client. Comma separated host:port pairs, each represents a ZooKeeper server.sessionTimeout
{Number} - Session timeout in milliseconds, defaults to 30 seconds.spinDelay
{Number} - The delay (in milliseconds) between each connection attempts.retries
{Number} - The number of retry attempts for connection loss exception.
Example
var zd = conn: 'localhost:2181,localhost:2182' dubbo: '2.5.3';
client
The client instance created by node-zookeeper-client. To listen event such as follows:
zdclient;
The list of events could reference: https://github.com/alexguan/node-zookeeper-client#state
void connect()
Connect to the Dubbo Registration Center by node-zookeeper-client. Equivalent to the following code:
zd;// just likezdclient;
void close()
Close the connection of node-zookeeper-client. Equivalent to the following code:
zd;// just likezdclient;
Invoker getInvoker(path, opt)
Arguments
-
path {String} - Path of service.
-
opt {Object} - An object to set the Invoker options. Currently available options are:
version
{String} - Service version information.timeout
{Number} - The timeout (in milliseconds) to excute.
Example
var invoker = zd;
Invoker
void excute(method, args, cb)
Arguments
- method {String} - Method to excute.
- args {Array} - Argument list.
[
cb(err, data)]
{Function} - The data is the returned value. When the cb is undefined, the function return a Promise instance.
Example
var method = 'getUserByID';var arg1=$class:'int'$:123; // use callbackinvoker; // or return a Promise instanceinvoker ;
Thanks
Thank node-zookeeper-dubbo provide reference and thoughts.
License
Licensed under the MIT license.