这个项目主要是针对使用 dubbo 服务的团体或者个人
原生 dubbo 框架可以输出 json 数据供消费者调用,但是假如囿于历史原因 dubbo 不是通过 json 提供数据的,那就只能用原生协议了。之前网上大部分用 node 调取 dubbo 服务都是用 json 格式的库。
所以,封装了一个通过原生协议调取 dubbo 服务, dubbo 文档中有写到,数据使用 hessian 序列化和反序列化的,只要能通过 nodejs 模拟 hessian 的序列化方式就成功了一大半,在 node 可以直接使用 hessian.js 完成这个工作,剩下的就是实现 dubbo 协议的消息封装。
envirmoment
zookeeper conn url
the service you need
dubbo version
var Service=require('node-zookeeper-dubbo');
var opt={
env:'test',
conn:'127.0.0.1:2180',
path:'com.customer.Service'
}
var method="getUserByID";
var arg1={$class:'int',$:123}
var args=[arg1];
var service = new Service(opt);
service.excute(method,args,function(err,data){
if(err){
console.log(err);
return;
}
console.log(data)
})
or
service
.excute(method,args)
.then(function(data){
console.log(data);
})
.catch(function(err) {
console.log(err);
})
you can use js-to-java
javascript
var arg1={$class:'int',$:123};
//equivalent
var arg1=java('int',123);
Default the zookeeper connection is keep-alive,you can call service.zoo.close()
to close the connect;