alibaba dubbo和apache dubbo 获取线程池的方式是不一样的
alibaba dubbo线程池监控
import com.alibaba.dubbo.common.Constants;
import com.alibaba.dubbo.common.extension.ExtensionLoader;
import com.alibaba.dubbo.common.store.DataStore;
import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import java.net.InetAddress;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
/**
* dubbo线程池监控
*
* @author huchenfei
* @version 1.0
* @class DubboThreadPoolMonitorTask
* @date 2020/12/28 18:03
* @description
*/
public class DubboThreadPoolMonitorJob {
protected static final Logger LOCAL_LOGGER = LoggerFactory.getLogger(DubboThreadPoolMonitorJob.class);
private static final String MONITOR_PREFIX = "dubbo_threadPool.";
private static final Map<String, Long> TASK_COUNT_MAP = Maps.newConcurrentMap();
public void execute() {
try {
DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();
if (dataStore == null) {
return;
}
InetAddress localHost = InetAddress.getLocalHost();
String hostName = localHost.getHostName().replace('.', '_');
String host = hostName + ":";
Map<String, Object> executors = dataStore.get(Constants.EXECUTOR_SERVICE_COMPONENT_KEY);
for (Map.Entry<String, Object> entry : executors.entrySet()) {