UNPKG

@betit/orion

Version:

Pluggable microservice framework

49 lines (41 loc) 1.35 kB
const orion = require('..'); const codec = new orion.MsgPackCodec(); const server = new orion.NatsTransport(); const client = new orion.NatsTransport(); /////////////////////////////////////// // Request Performance /////////////////////////////////////// const timeout = 20000; const loop = 100000; const hash = 1000; let received = 0; console.log('Request Performance Test'); let start = new Date(); server.handle('echo', 'perf', (req, reply) => { const request = codec.decode(req); const res = codec.encode(request); reply(res); }); server.listen(() => { const req = codec.encode({ a: 2, b: 3 }); for (let i = 0; i < loop; i++) { client.request('echo', req, res => { if (res instanceof Error) { console.log('Error:', res.message); process.exit(); } const response = codec.decode(res); 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('+'); } }, timeout); } });