pf5ub3a78 1 month ago
parent 4123482732
commit 0026391c7c

@ -0,0 +1,79 @@
package com.soa.bus;
import com.soa.service.Service;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 线 -
*/
public class ServiceBus {
private static final Logger logger = LogManager.getLogger(ServiceBus.class);
private static ServiceBus instance;
private final Map<String, Service> serviceRegistry = new ConcurrentHashMap<>();
private ServiceBus() {}
/**
* 线
*/
public static synchronized ServiceBus getInstance() {
if (instance == null) {
instance = new ServiceBus();
}
return instance;
}
/**
*
*/
public void registerService(Service service) {
String serviceName = service.getName();
serviceRegistry.put(serviceName, service);
logger.info("Service registered: {}", serviceName);
}
/**
*
*/
public void unregisterService(String serviceName) {
serviceRegistry.remove(serviceName);
logger.info("Service unregistered: {}", serviceName);
}
/**
*
*/
public String callService(String serviceName, String request) {
Service service = serviceRegistry.get(serviceName);
if (service == null) {
logger.error("Service not found: {}", serviceName);
return "Error: Service not found - " + serviceName;
}
if (!service.isAvailable()) {
logger.error("Service not available: {}", serviceName);
return "Error: Service not available - " + serviceName;
}
logger.info("Routing request to service: {}", serviceName);
return service.execute(request);
}
/**
*
*/
public boolean isServiceAvailable(String serviceName) {
Service service = serviceRegistry.get(serviceName);
return service != null && service.isAvailable();
}
/**
*
*/
public int getRegisteredServiceCount() {
return serviceRegistry.size();
}
}
Loading…
Cancel
Save