kitejs
v1.1.11
Published
the rpc framework Kite for Node.js
Downloads
157
Readme
kitejs
说明
kitejs 提供统一访问服务的 client,支持 Http、RPC(thrift) 协议,提供多种编解码方式(正在支持)。 kitejs 集成寻址、支持负载均衡策略
使用
首先进行安装
npm install kitejs --save
使用方法
// for HTTP
const kite = require('kitejs');
var client = new kite.Client(
{
host: '127.0.0.1',
port: 8080,
protocol: 'HTTP',
log: {
logFile: __dirname + '/client.log',
logId: Date.now()
}
}
);
// use request component
client.request({ path: '/' }, function (err, data) {
if (err) throw err;
console.log(data);
});
// for THRIFT
const kite = require('kitejs');
var client = new kite.Client(
{
host: '127.0.0.1',
port: 8080,
protocol: 'THRIFT',
log: {
logFile: __dirname + '/client.log',
logId: Date.now()
}
}
);
client
.loadService(__dirname + '/thrift/gen-nodejs/Calculator.js')
.request(function (err, cal, conn) {
if (err) throw err;
cal.ping(function (err, response) {
console.log('ping()');
});
cal.add(1, 1, function (err, response) {
console.log(response);
});
});
// for CONSUL
const kite = require('kitejs');
var client = new kite.Client({
service: 'ies.fe.mis',
searchHostType: 'CONSUL',
log: {
logFile: __dirname + '/client.log',
logId: Date.now()
}
});
client.request({path: '/'}, function (err, data) {
console.log(data);
});
接口
Client(options) 客户端类
可以方便的创建一个 Client 用于请求。。。
Options
protocol 访问协议,HTTP \ THRIFT,默认HTTP
searchHostType 寻址方式 LOCAL 或者 CONSUL,默认LOCAL
service consul 时提供 PSM 信息
host 服务端域名信息
port 服务端端口信息
timeout 访问超时时间
1s
100ms
or1
默认为秒address 更人性化的地址设置,比如
127.0.0.1:10220
consul 提供 consul 服务地址信息
retry 重试次数,当网络不稳定时,需要重试
2
transport 选择的thrift协议。FRAMED | BUFFERED
{ consul: { host: '127.0.0.1', port: 2280 } }
Client.request
发起请求,获取服务端数据
.request(options?, cb);
参数
options 可选,主要用于 HTTP 填写 PATH、HEADERS 等信息
request
的参数
cb
function (err, data, conn?) {}
- err 如果发生错误,err 为 Error 对象实例,如果未发生错误为
null
- data
- protocol=THRIFT 时,返回 Service 对象
- protocol=HTTP 时,直接返回请求 response 的内容
- conn 可选参数,如果 THRIFT 时,返回请求 connection ,可以方便 Service 获取到数据后关闭连接。
- err 如果发生错误,err 为 Error 对象实例,如果未发生错误为
Client.loadService
加载 Thrift Service
参数
client.loadService('xxService.js')
// return client Object instance.
- Thrift Service 的 path,框架会 load
xxService.js
并注册入 Thrift 请求框架
返回
- Client 对象实例