node-consul-service
Version:
A robust Node.js service that integrates with HashiCorp Consul for service discovery and configuration management. This service provides a comprehensive solution for managing distributed systems and microservices architecture, making it easier to handle s
33 lines (32 loc) • 1.03 kB
JavaScript
import client from './client';
const registeredServices = new Set();
export async function registerService(name, id, port, address = 'localhost') {
if (registeredServices.has(id)) {
console.log(`⚠️ Service "${id}" is already registered.`);
return;
}
await client.agent.service.register({
name,
id,
address,
port,
check: {
name: `${name}-check`,
http: `http://${address}:${port}/health`,
interval: '10s',
timeout: '5s',
deregistercriticalserviceafter: '1m',
},
});
registeredServices.add(id);
console.log(`✅ Service "${id}" registered successfully.`);
}
export async function deregisterService(id) {
if (!registeredServices.has(id)) {
console.log(`⚠️ Service "${id}" is not registered.`);
return;
}
await client.agent.service.deregister(id);
registeredServices.delete(id);
console.log(`🛑 Service "${id}" deregistered successfully.`);
}