在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  Java  Linux/ 分布式集群環(huán)境下怎么合并統(tǒng)計線程池信息?

分布式集群環(huán)境下怎么合并統(tǒng)計線程池信息?

背景:

剛進公司實習,主管讓我做一個監(jiān)控線程池的功能模塊。

就是在創(chuàng)建線程池后,會調(diào)用注冊一下我的線程池工具。

/**
 * 
 * 線程池監(jiān)控注冊器
 * 
 * @author Ric
 *
 */
public final class ThreadPoolMonitorUtils {
    
    private static final Map<String, ExecutorService> map = new HashMap<String, ExecutorService>();

    
    /**
     * 將線程池加入監(jiān)控隊列
     * @param es
     * @param esUniqueName
     */
    public synchronized static void register(ExecutorService es, String esUniqueName){
        if(map.containsKey(esUniqueName)){
            throw new RuntimeException("重復注冊監(jiān)控"+esUniqueName);
        }
        if(map.containsValue(es)){
            throw new RuntimeException("重復注冊監(jiān)控值"+esUniqueName);
        }
        map.put(esUniqueName, es);
    }

    
    public static Map<String, ExecutorService> getMap() {
        return map;
    }

}

然后使用者在頁面上能夠?qū)崟r查詢當前項目的進程池狀態(tài)。

重點數(shù)據(jù)是:排隊任務數(shù),執(zhí)行總數(shù),當前線程數(shù),空閑線程數(shù)

如下圖:

圖片描述

現(xiàn)在是說要把我這個功能應用到部門其他的系統(tǒng)上,要求考慮分布式+集群,對代碼進行改造。

問題

比如我現(xiàn)在這個項目叫做pro,如果我要部署多個pro,我應該怎么樣才能統(tǒng)計到每個項目實例中注冊的線程池信息呢(按照單個物理服務器分類)?在分布式場景下還會有什么變化嗎?我想過通過第三方緩存,但是不符合實時的需求。??煞裾埓罄袀兘o點思路或者已有的資料參考。萬分感謝。

btw:本人剛剛實習,也不是科班出身的程序員,如果有什么技術(shù)表述的錯誤,請指正。。

回答
編輯回答
帥到炸

說一個簡單的辦法:在公司內(nèi)部注冊一個域名,搭一個 http 服務,數(shù)據(jù)存在是 mysql 數(shù)據(jù)庫里。每個項目實例定期將統(tǒng)計信息匯報到這個 http 服務。再寫一個查詢頁面,從 mysql 里查出數(shù)據(jù)并展示。

2017年9月25日 14:53