xmsg
所属分类:聚类算法
开发工具:JavaScript
文件大小:11KB
下载次数:0
上传日期:2016-12-20 15:16:26
上 传 者:
sh-1993
说明: 集群应用程序消息中心
(cluster app msg center)
文件列表:
.npmignore (56, 2016-12-20)
.travis.yml (320, 2016-12-20)
LICENSE (1063, 2016-12-20)
UPDATELOG (372, 2016-12-20)
benchmark (0, 2016-12-20)
benchmark\server.js (934, 2016-12-20)
benchmark\size.js (674, 2016-12-20)
example (0, 2016-12-20)
example\client.js (359, 2016-12-20)
example\server.js (268, 2016-12-20)
example\size_time.js (297, 2016-12-20)
index.js (4944, 2016-12-20)
package.json (853, 2016-12-20)
parse.js (1530, 2016-12-20)
profile.js (2023, 2016-12-20)
test (0, 2016-12-20)
test\index.js (11550, 2016-12-20)
# XMSG
[![Build Status](https://travis-ci.org/hardog/xmsg.svg?branch=master)](https://travis-ci.org/hardog/xmsg)
[![Coverage Status](https://img.shields.io/codecov/c/github/hardog/xmsg.svg)](https://codecov.io/github/hardog/xmsg?branch=master)
[![License](https://img.shields.io/npm/l/xmsg.svg)](https://www.npmjs.com/package/xmsg)
[![xmsg](http://img.shields.io/npm/dm/xmsg.svg)](https://www.npmjs.org/package/xmsg)
[![npm Version](https://img.shields.io/npm/v/xmsg.svg)](https://www.npmjs.com/package/xmsg)
cluster app msg communication center!
# Features
- all function based on [Promise](#https://www.promisejs.org/)
- 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_*** #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_*** x86_*** x86_*** 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:8103@file.get 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('sock_timeout', 2000), default is 100**
the time threshold when send request to server
- **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'))
```
# License
[MIT](https://github.com/hardog/xmsg/blob/master/LICENSE)
近期下载者:
相关文件:
收藏者: