Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 84 additions & 81 deletions ee/server/broker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ class EJSONSerializer extends Base {
}

const {
TRANSPORTER = 'TCP',
TRANSPORTER = '',
CACHE = 'Memory',
// SERIALIZER = 'MsgPack',
SERIALIZER = 'EJSON',
Expand All @@ -253,90 +253,93 @@ const {
SKIP_PROCESS_EVENT_REGISTRATION = 'true',
} = process.env;

const network = new ServiceBroker({
// TODO: Reevaluate, without this setting it was preventing the process to stop
skipProcessEventRegistration: SKIP_PROCESS_EVENT_REGISTRATION === 'true',
transporter: TRANSPORTER,
metrics: {
enabled: MS_METRICS === 'true',
reporter: [{
type: 'Prometheus',
// only starts network broker if transporter properly configured
if (TRANSPORTER.match(/^(?:nats|TCP)/)) {
const network = new ServiceBroker({
// TODO: Reevaluate, without this setting it was preventing the process to stop
skipProcessEventRegistration: SKIP_PROCESS_EVENT_REGISTRATION === 'true',
transporter: TRANSPORTER,
metrics: {
enabled: MS_METRICS === 'true',
reporter: [{
type: 'Prometheus',
options: {
port: MS_METRICS_PORT,
},
}],
},
cacher: CACHE,
serializer: SERIALIZER === 'EJSON' ? new EJSONSerializer() : SERIALIZER,
logLevel: MOLECULER_LOG_LEVEL as any,
// logLevel: {
// // "TRACING": "trace",
// // "TRANS*": "warn",
// BROKER: 'debug',
// TRANSIT: 'debug',
// '**': 'info',
// },
logger: {
type: 'Console',
options: {
port: MS_METRICS_PORT,
formatter: 'short',
},
}],
},
cacher: CACHE,
serializer: SERIALIZER === 'EJSON' ? new EJSONSerializer() : SERIALIZER,
logLevel: MOLECULER_LOG_LEVEL as any,
// logLevel: {
// // "TRACING": "trace",
// // "TRANS*": "warn",
// BROKER: 'debug',
// TRANSIT: 'debug',
// '**': 'info',
// },
logger: {
type: 'Console',
options: {
formatter: 'short',
},
},
registry: {
strategy: BALANCE_STRATEGY,
preferLocal: BALANCE_PREFER_LOCAL !== 'false',
},

requestTimeout: parseInt(REQUEST_TIMEOUT) * 1000,
retryPolicy: {
enabled: RETRY_ENABLED === 'true',
retries: parseInt(RETRY_RETRIES),
delay: parseInt(RETRY_DELAY),
maxDelay: parseInt(RETRY_MAX_DELAY),
factor: parseInt(RETRY_FACTOR),
check: (err: any): boolean => err && !!err.retryable,
},

maxCallLevel: 100,
heartbeatInterval: parseInt(HEARTBEAT_INTERVAL),
heartbeatTimeout: parseInt(HEARTBEAT_TIMEOUT),

// circuitBreaker: {
// enabled: false,
// threshold: 0.5,
// windowTime: 60,
// minRequestCount: 20,
// halfOpenTime: 10 * 1000,
// check: (err: any): boolean => err && err.code >= 500,
// },

bulkhead: {
enabled: BULKHEAD_ENABLED === 'true',
concurrency: parseInt(BULKHEAD_CONCURRENCY),
maxQueueSize: parseInt(BULKHEAD_MAX_QUEUE_SIZE),
},

tracing: {
enabled: TRACING_ENABLED === 'true',
exporter: {
type: 'Jaeger',
options: {
endpoint: null,
host: 'jaeger',
port: 6832,
sampler: {
// Sampler type. More info: https://www.jaegertracing.io/docs/1.14/sampling/#client-sampling-configuration
type: 'Const',
// Sampler specific options.
options: {},
registry: {
strategy: BALANCE_STRATEGY,
preferLocal: BALANCE_PREFER_LOCAL !== 'false',
},

requestTimeout: parseInt(REQUEST_TIMEOUT) * 1000,
retryPolicy: {
enabled: RETRY_ENABLED === 'true',
retries: parseInt(RETRY_RETRIES),
delay: parseInt(RETRY_DELAY),
maxDelay: parseInt(RETRY_MAX_DELAY),
factor: parseInt(RETRY_FACTOR),
check: (err: any): boolean => err && !!err.retryable,
},

maxCallLevel: 100,
heartbeatInterval: parseInt(HEARTBEAT_INTERVAL),
heartbeatTimeout: parseInt(HEARTBEAT_TIMEOUT),

// circuitBreaker: {
// enabled: false,
// threshold: 0.5,
// windowTime: 60,
// minRequestCount: 20,
// halfOpenTime: 10 * 1000,
// check: (err: any): boolean => err && err.code >= 500,
// },

bulkhead: {
enabled: BULKHEAD_ENABLED === 'true',
concurrency: parseInt(BULKHEAD_CONCURRENCY),
maxQueueSize: parseInt(BULKHEAD_MAX_QUEUE_SIZE),
},

tracing: {
enabled: TRACING_ENABLED === 'true',
exporter: {
type: 'Jaeger',
options: {
endpoint: null,
host: 'jaeger',
port: 6832,
sampler: {
// Sampler type. More info: https://www.jaegertracing.io/docs/1.14/sampling/#client-sampling-configuration
type: 'Const',
// Sampler specific options.
options: {},
},
// Additional options for `Jaeger.Tracer`
tracerOptions: {},
// Default tags. They will be added into all span tags.
defaultTags: null,
},
// Additional options for `Jaeger.Tracer`
tracerOptions: {},
// Default tags. They will be added into all span tags.
defaultTags: null,
},
},
},
});
});

new NetworkBroker(network);
new NetworkBroker(network);
}