UNPKG

@betit/orion

Version:

Pluggable microservice framework

50 lines (41 loc) 1.36 kB
const orion = require('..'); const codec = new orion.MsgPackCodec(); const opts = { encoding: 'binary' }; const server = require('nats').connect(opts); const client = require('nats').connect(opts); /////////////////////////////////////// // Request Performance /////////////////////////////////////// const loop = 100000; const hash = 1000; let received = 0; console.log('Request Performance Test'); server.on('connect', () => { let start = new Date(); server.subscribe('echo', (msg, reply) => { const req = codec.decode(msg); const res = codec.encode(req); server.publish(reply, res); }); server.flush(() => { const req = codec.encode({ a: 2, b: 3 }); for (let i = 0; i < loop; i++) { client.request('echo', req, { max: 1 }, msg => { const res = codec.decode(msg); received += 1; if (received === loop) { let stop = new Date(); let rps = parseInt(loop / ((stop - start) / 1000)); console.log('\n' + rps + ' request-responses/sec'); let lat = parseInt(((stop - start) * 1000) / (loop * 2)); // Request=2, Reponse=2 RTs console.log('Avg roundtrip latency: ' + lat + ' microseconds'); process.exit(); } else if (received % hash === 0) { process.stdout.write('+'); } }); } }); });