Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
service-center
Advanced tools
service-center
是一个nodejs客户端,其配合zookeeper来提供服务协调的功能。用户可以使用此客户端在zookeeper上方便的注册服务或者获取服务。服务注册注销和服务之间的相互调用变得非常便捷。
经常会有这样的一些场景:
上述四种为常见情况,如果服务很多,相互之间的调用关系复杂,那么上述问题造成的麻烦会以指数级增长,一个失误就会引起线上的故障。怎么办?service-center
帮你搞定一切。
注册服务:registerService(serviceName,version,ctlInfo,serviceInfo,cb);
example:
//obj是指向这个服务的一个对象,其有unRegisterService方法可以注销此服务
registerService('testService','1.0',
{
//tm表示和zk连接的session的超时时间
tm:1000,
},
{
method:'GET',
url:'1.1.1.1:80'
}
,function(err,obj){
if(err) throw new Error(err);
}
);
注销服务:unRegisterService(cb);
example:
//obj是registerService回调中的参数
obj.unRegisterService(function(err){
if(err) throw new Error(err);
});
获取所有服务:getServiceAll(serviceName,filter,ctlInfo,cb,w_cb);
example:
var ServiceCenter = require('service-center');
/*
filter可以是字符串表示某个具体的版本或者是一个对象,设置为0表示获取最新服务
对象中可以指定筛选条件,例如版本选择和机房选择
方法获取的是符合条件的所有服务信息
*/
ServiceCenter.getServiceAll('testServiceName',
{
version:{
min:'1.0',
max:'2.0'
},
room:'ROOM1'
},
{
tm:10000,
hbFunc:function(addr,cb){
//addr为服务的地址,可能是url或者是其他表示服务地址的字符串
//cb为检测好后的回调函数,如果心跳发现服务不可用或者其他意外情况,如下调用回调函数:
//cb(err); err为错误信息。
}
}
,function(err,serviceInfos){
//get serviceInfos after call this function
}
,function(err){
//If one of thoses services is changed,the function is called.
}
);
获取任一服务:getServiceAny(serviceName,filter,ctlInfo,cb,w_cb);
example:
var ServiceCenter = require('service-center');
/*
filter可以是字符串表示某个具体的版本或者是一个对象,设置成0表示获取最新服务
对象中可以指定筛选条件,例如版本选择和机房选择
方法获取的是符合条件的所有服务中的一个服务信息
*/
ServiceCenter.getServiceAny('testServiceName','0',
{
tm:10000,
//说明如上面getServiceAll
hbFunc:function(addr,cb){}
}
,function(err,serviceInfo){
//get one serviceInfo after call this function
}
,function(err){
//If this service is changed,the function is called.
}
);
$ npm install service-center
var ServiceCenter = require('service-center');
//ServiceCenter初始化方式,用来指明zk的地址等,这步很重要
ServiceCenter.init({
addr:'localhost:2181',//zookeeper集群地址,多个地址以","分割,必填!
user:'',//用户名,暂时无用,以后会提供全线检查
pwd:'',//密码,暂时无用,原因同用户名
localPath:'',//本地文件保存路径,用于连不上zk时获得service信息,默认__dirname+'/.cache'
root:''//根路径,默认/service
checkInterval:''//心跳检测间隔,默认500
});
其他的接口上述都已介绍。
修改test/test_config目录中的zk地址,然后在根目录下运行make就可以进行单元测试
service-center详细的使用方式可以参考test目录下单元测试,如有问题欢迎和我联系,见下面联系方式。
FAQs
nodejs client for service coodernation with zookeeper
The npm package service-center receives a total of 1 weekly downloads. As such, service-center popularity was classified as not popular.
We found that service-center demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.