xmsg
v1.1.2
Published
cluster app msg center
Downloads
34
Readme
XMSG
cluster app msg communication center!
Features
- all function based on Promise
- create listen server
- send to one/bunch server
- performance log
- log cache
- connection pool size
- keep alive with server
- msg queue size set when loss connection
Install
$ npm install xmsg -g
Benchmark
// 1C1G in virutal box
// uname -a: Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
max: 17750 ops/s
min: 12900 ops/s
Test
run test:
$ npm test
run test coverage:
$ npm run cover
SETTINGS
- xmsg.set('keep_alive', true), default is false
if keep alive with server
- xmsg.set('profile', true), default is false
show the following profile log
Tag:api Host:v10-2-23-23.hx Target:10.2.21.186:[email protected] Start:Thu Nov 24 2016 11:57:38 GMT+0800 (CST) Net1:147ms Fn:1ms Net2:6ms Attach:None
Net1: the time from client to server
Fn: server deal through time
Net2: the time from server to client
- xmsg.set('q_timeout', 2000), default is 1000
the time to flush profile log queue, be sure profile is on
- xmsg.set('pool_size', 100), default is 20
pool size for client connection to prevent lots of request use one connection
- xmsg.set('hwm', 1000), default is Infinity
when client loss connection with server, msg would be store in queue, hwm is the queue size
Usage
xmsg.reset()
clear previous settings.
xmsg.create_server
// local machine create a server listen port 3000
// by `reply` return msg to client
xmsg.create_server(3000, {
fn: function(data, reply){reply('hello')},
args: function(data, reply){reply(data)},
multi: {
fn: function(data, reply){reply(data)}
}
});
xmsg.send_one
// send to one of the cluster machine
// machine address: 127.0.0.1:3001
// server fn: fn
// passed data: 'hello'
xmsg.send_one('127.0.0.1:3001', 'fn', 'hello'))
xmsg.send_bunch
the target server have different method name
// send to multi machine of the cluster
xmsg.send_bunch([
['127.0.0.1:3000', 'fn1'],
['127.0.0.1:3001', 'fn2'],
['137.233.222.123:3001', 'fn3']
], 'hello'))
xmsg.send_bunch2
the target server share the same method name
// send to multi machine of the cluster
xmsg.send_bunch2(['127.0.0.1:3000', '127.0.0.1:3001'], 'fn', hello'))
TODO
- 出错情况添加
status: false
标记, 参考其他库的出错提示