Skip to content

Commit

Permalink
small changes
Browse files Browse the repository at this point in the history
  • Loading branch information
icebob committed Sep 10, 2017
1 parent feaf0a4 commit 9714208
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 42 deletions.
48 changes: 37 additions & 11 deletions CHANGELOG.md
@@ -1,21 +1,21 @@
<a name="0.11.0"></a>
# [Next - 0.11.0](https://github.com/ice-services/moleculer/compare/v0.10.0...v0.11.0) (2017-xx-xx)

- Cacher doesn't listen "cache.clean" event
- $node.health: removed `versions`, added `client`
- broker options: `logFormatter: "simple"`
- new PING & PONG packets
# Breaking changes

## Protocol changed
- versioned packets
- $node.health: removed `versions`, added `client`
- removed double stringify in packets data
- removed `uptime`, added `cpu` utilization in HEARTBEAT packet
- added `client`, `port`, `config`, removed `versions` fields in INFO packet
- added `group` field in EVENT packet
- added `requestID` field in REQUEST packet
- changed default broker options: `heartbeatInterval: 5`, `heartbeatTimeout: 15`, `circuitBreaker.maxFailures: 3`
- `broker.bus`, `broker.on`, `broker.once`, `broker.off` removed. Use `events` in service schema.
- rewritten service registry module
-the `error` field is JSON encoded string in RESPONSE packet

## Balanced events
- support balanced events (event-driver arch)
- internal events starts with `$`, they are not transferred to remote nodes.
- subscribe to local events in service `events` or with `broker.localBus.on`.
- internal node events `$node.connected`, `$node.updated`, `$node.disconnected`
- `services.changed` renamed to `$services.changed`. It is called if local or remote service list changed. First parameter is `localService` (boolean).
- `broker.getService` renamed to `broker.getLocalService`
Expand All @@ -25,17 +25,43 @@
- `broker.emit` - balancing events between service instances. 3rd param is the service "group" name
- `broker.broadcast` - same as the old `broker.emit`. Every nodes & every services receive the event
- `broker.broadcastLocal` - every local service receive the event.

- changed circuit breaker events:
- local events: `$circuit-breaker.closed`, `$circuit-breaker.opened`, `$circuit-breaker.half-opened`
- global metrics events: `metrics.circuit-breaker.closed`, `metrics.circuit-breaker.opened`, `metrics.circuit-breaker.half-opened`

## Built-in load balancer is switchable.

## Removed `broker.on`
- `broker.bus`, `broker.on`, `broker.once`, `broker.off` removed. Use `events` in service schema.

## Changed local service responses
- changed returned structure of `$node.list`, `$node.services`, `$node.actions`, `$node.health`
- new internal action `$node.events`
- support balanced events (event-driver arch)
- new `waitForServices` method in services & broker

# New

## New broker options

## Ping command
- new PING & PONG packets
- broker options: `logFormatter: "simple"`
- ping other nodes `transit.sendPing`. For responses subscribe to `$node.pong` event.

## Pluggable validator

## Waiting for other services feature
- new `waitForServices` method in services & broker

## New error types
- `MoleculerRetryableError`, `MoleculerServerError`, `MoleculerClientError`, `ServiceNotAvailable`, `ProtocolVersionMismatchError`

# Other changes
- changed default broker options: `heartbeatInterval: 5`, `heartbeatTimeout: 15`, `circuitBreaker.maxFailures: 3`
- rewritten service registry module
- Cacher doesn't listen "cache.clean" event




--------------------------------------------------
<a name="0.10.0"></a>
Expand Down
2 changes: 1 addition & 1 deletion src/transit.js
Expand Up @@ -536,7 +536,7 @@ class Transit {
const elapsedTime = now - payload.time;
const timeDiff = Math.round(now - payload.arrived - elapsedTime / 2);

this.logger.debug(`PING-PONG from '${payload.sender}' - Time: ${elapsedTime}ms, Time difference: ${timeDiff}ms `);
// this.logger.debug(`PING-PONG from '${payload.sender}' - Time: ${elapsedTime}ms, Time difference: ${timeDiff}ms `);

this.broker.broadcastLocal("$node.pong", { nodeID: payload.sender, elapsedTime, timeDiff }, payload.sender);
}
Expand Down
30 changes: 0 additions & 30 deletions src/transporters/amqp.js
Expand Up @@ -350,30 +350,6 @@ class AmqpTransporter extends Transporter {
this._consumeCB(PACKET_EVENT, true),
this.opts.amqp.consumeOptions
));

/* REMOVE IT
// Create a group specific queue and bind to the exchange.
const topic = `${this.prefix}.${PACKET_EVENT}.${event}`;
// And an event specific exchange
const queue = `${this.prefix}.${PACKET_EVENT}.${group}.${event}`;
// Save binding arguments for easy unbinding later.
const bindingArgs = [queue, topic, ""];
this.bindings.push(bindingArgs);
return Promise.all([
this.channel.assertExchange(topic, "fanout", this.opts.amqp.exchangeOptions),
this.channel.assertQueue(queue, this._getQueueOptions(PACKET_EVENT + "LB")),
])
.then(() => Promise.all([
this.channel.bindQueue(...bindingArgs),
this.channel.consume(
queue,
this._consumeCB(PACKET_EVENT, true),
this.opts.amqp.consumeOptions
)
]));
*/
}));
}

Expand Down Expand Up @@ -410,12 +386,6 @@ class AmqpTransporter extends Transporter {
});
return Promise.resolve();
}
/* REMOVE IT
else {
let topic = `${this.prefix}.${PACKET_EVENT}.${packet.payload.event}`;
this.channel.publish(topic, "", payload, this.opts.amqp.messageOptions);
return Promise.resolve();
}*/
// If it's not contain, then it is a broadcasted event,
// we sent it in the normal way (exchange)
}
Expand Down

0 comments on commit 9714208

Please sign in to comment.