【Vesta發(fā)號(hào)器源碼】IpConfigurableMachineIdProvider

Vesta發(fā)號(hào)器源碼解析——IpConfigurableMachineIdProvider

利用IP持有machineId的模式

字段和屬性

    //日志
    private static final Logger log = LoggerFactory
            .getLogger(IpConfigurableMachineIdProvider.class);

    //MachineId存儲(chǔ)
    private long machineId;
    
    //ip映射表
    private Map<String, Long> ipsMap = new HashMap<String, Long>();
    
    //默認(rèn)無(wú)參構(gòu)造方法
    //記錄日志
    public IpConfigurableMachineIdProvider() {
        log.debug("IpConfigurableMachineIdProvider constructed.");
    }
    
    //根據(jù)參數(shù)ips,ip信息構(gòu)造
    public IpConfigurableMachineIdProvider(String ips) {
        //解析并處理IP
        setIps(ips);
        //初始化
        init();
    }

初始化方法

    public void init() {
        //讀取主機(jī)IP地址
        String ip = IpUtils.getHostIp();
        //判斷ip地址是否取到,如果沒(méi)取到拋出異常泄伪,記錄日志,終止初始化
        if (StringUtils.isEmpty(ip)) {
            String msg = "Fail to get host IP address. Stop to initialize the IpConfigurableMachineIdProvider provider.";

            log.error(msg);
            throw new IllegalStateException(msg);
        }
        
        //判斷IP是否有記錄柏蘑,如果沒(méi)有,記錄日志拋出異常
        if (!ipsMap.containsKey(ip)) {
            String msg = String
                    .format("Fail to configure ID for host IP address %s. Stop to initialize the IpConfigurableMachineIdProvider provider.",
                            ip);

            log.error(msg);
            throw new IllegalStateException(msg);
        }
        
        //獲取IP對(duì)應(yīng)的id
        machineId = ipsMap.get(ip);
        //記錄日志
        log.info("IpConfigurableMachineIdProvider.init ip {} id {}", ip,
                machineId);
    }

設(shè)置IPs


    public void setIps(String ips) {
        log.debug("IpConfigurableMachineIdProvider ips {}", ips);
        //參數(shù)校驗(yàn)
        if (!StringUtils.isEmpty(ips)) {
            //逗號(hào)分隔的ip地址列表
            String[] ipArray = ips.split(",");
            //分配ID
            for (int i = 0; i < ipArray.length; i++) {
                ipsMap.put(ipArray[i], (long) i);
            }
        }
    }

getter和setter

    public long getMachineId() {
        return machineId;
    }

    public void setMachineId(long machineId) {
        this.machineId = machineId;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粹庞,一起剝皮案震驚了整個(gè)濱河市咳焚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庞溜,老刑警劉巖革半,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異流码,居然都是意外死亡又官,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)漫试,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)六敬,“玉大人,你說(shuō)我怎么就攤上這事驾荣⊥夤梗” “怎么了普泡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)典勇。 經(jīng)常有香客問(wèn)我劫哼,道長(zhǎng)叮趴,這世上最難降的妖魔是什么割笙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮眯亦,結(jié)果婚禮上伤溉,老公的妹妹穿的比我還像新娘。我一直安慰自己妻率,他們只是感情好乱顾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著宫静,像睡著了一般走净。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孤里,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天伏伯,我揣著相機(jī)與錄音,去河邊找鬼捌袜。 笑死说搅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的虏等。 我是一名探鬼主播弄唧,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼霍衫!你這毒婦竟也來(lái)了候引?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤敦跌,失蹤者是張志新(化名)和其女友劉穎澄干,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體峰髓,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡傻寂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了携兵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疾掰。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖徐紧,靈堂內(nèi)的尸體忽然破棺而出静檬,到底是詐尸還是另有隱情炭懊,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布拂檩,位于F島的核電站侮腹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏稻励。R本人自食惡果不足惜父阻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望望抽。 院中可真熱鬧加矛,春花似錦、人聲如沸煤篙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辑奈。三九已至苛茂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸠窗,已是汗流浹背妓羊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留塌鸯,地道東北人侍瑟。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像丙猬,于是被迫代替她去往敵國(guó)和親涨颜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 被惡意中傷的那一刻茧球,我竟然找不到可以訴說(shuō)的對(duì)象庭瑰,在朋友圈里寫(xiě)了寫(xiě),或好或壞抢埋,頓時(shí)讓我覺(jué)得是件多么心累的事情弹灭。 這大...
    鄭書(shū)夜閱讀 457評(píng)論 0 0
  • 當(dāng)決定做一個(gè)視頻自媒體的時(shí)候我就在想我一個(gè)人能做什么類(lèi)型的視頻穷吮,直到我現(xiàn)在托了3個(gè)多月的時(shí)間了也沒(méi)想好做什么東西出...
    煎定的洋蔥閱讀 180評(píng)論 0 0
  • 你我就在知識(shí)經(jīng)濟(jì)的風(fēng)暴中心 這兩天我被知識(shí)經(jīng)濟(jì)嚇壞了酷愧,知識(shí)付費(fèi)驾诈,已經(jīng)是一個(gè)飛速增長(zhǎng)大市場(chǎng)缠诅。剛剛過(guò)去喜馬拉雅知識(shí)大狂...
    烏龍明月閱讀 558評(píng)論 3 7
  • 隨著年齡和見(jiàn)識(shí)的增長(zhǎng)闯两,我們看待問(wèn)題的角度也在發(fā)生著變化褥伴,這對(duì)我們來(lái)說(shuō)大概率是一件好事。不過(guò)事情幾乎都有兩面性生蚁,那么...
    于于于于撒丶閱讀 1,143評(píng)論 0 3