一種序列號生成方法及電子設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及一種序列號生成方法及電子設(shè)備。
【背景技術(shù)】
[0002]序列號用于唯一標示系統(tǒng)元素,被廣泛地應(yīng)用于互聯(lián)網(wǎng)領(lǐng)域,可以優(yōu)化系統(tǒng)存儲,簡化模塊交互。隨著互聯(lián)網(wǎng)大數(shù)據(jù)時代的到來,數(shù)據(jù)規(guī)模和業(yè)務(wù)規(guī)模迅速膨脹,從性能、存儲、可用性、擴展性等幾個方面都給現(xiàn)有的序列號生成方法帶來嚴峻的挑戰(zhàn)。
[0003]目前采用的序列號生成方法有兩種:一是,集中式序列號生成方法,即由一個全局模塊負責生成序列號,可以保證序列號從0開始連續(xù)遞增,但這種簡單的序列號生成方法采用單設(shè)備單點生成序列號,無法適應(yīng)大規(guī)模分布式系統(tǒng)的序列號生成要求;二是,分布式序列號生成方法,即利用數(shù)據(jù)庫的自增步長來生成序列號,典型的配置是兩個節(jié)點,一個生成偶數(shù)序列號,一個生成奇數(shù)序列號,這種序列號生成方法雖然可以通過設(shè)置自增步長來配置服務(wù)的節(jié)點數(shù)量,以支持大規(guī)模系統(tǒng)的序列號生成要求,但不能保證序列號的嚴格遞增,無法滿足對時序有嚴格要求的應(yīng)用場景。
[0004]可見,現(xiàn)有的序列號生成方法存在不能兼顧適應(yīng)大規(guī)模系統(tǒng)和保證序列號遞增的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種序列號生成方法及電子設(shè)備,用以解決現(xiàn)有技術(shù)中的序列號生成方法存在的不能兼顧適應(yīng)大規(guī)模系統(tǒng)和保證序列號遞增的技術(shù)問題。
[0006]第一方面,提供一種序列號生成方法,所述方法應(yīng)用于第一集群的第一電子設(shè)備中,所述第一集群包括至少一個所述第一電子設(shè)備,所述方法包括:
[0007]接收客戶端發(fā)送的序列號請求;所述序列號請求中攜帶有第一應(yīng)用的應(yīng)用信息;
[0008]根據(jù)所述應(yīng)用信息和接收所述序列號請求的所述第一電子設(shè)備中預(yù)存的拓撲信息,從所述第一集群中確定出與所述第一應(yīng)用對應(yīng)的第一電子設(shè)備作為目標電子設(shè)備;所述拓撲信息包括所述第一集群中的第一電子設(shè)備與需要服務(wù)的應(yīng)用的對應(yīng)關(guān)系;
[0009]當接收所述序列號請求的所述第一電子設(shè)備是所述目標電子設(shè)備時,從預(yù)存的與所述第一應(yīng)用對應(yīng)的預(yù)分配序列號集合中確定出最小的序列號,作為目標序列號發(fā)送至所述客戶端;
[0010]當接收所述序列號請求的所述第一電子設(shè)備不是所述目標電子設(shè)備時,轉(zhuǎn)發(fā)所述序列號請求至所述目標電子設(shè)備,以使所述目標電子設(shè)備從預(yù)存的與所述第一應(yīng)用對應(yīng)的預(yù)分配序列號集合中確定出最小的序列號,作為目標序列號發(fā)送至所述客戶端。
[0011 ] 優(yōu)選的,所述方法還包括:
[0012]當確定第二電子設(shè)備中存儲的拓撲信息發(fā)生了更新時,獲取所述第二電子設(shè)備中存儲的更新后的拓撲信息;
[0013]用所述更新后的拓撲信息替換所述第一電子設(shè)備中預(yù)存的拓撲信息。
[0014]優(yōu)選的,所述確定第二電子設(shè)備中存儲的拓撲信息發(fā)生了更新包括:
[0015]接收到所述第二電子設(shè)備發(fā)送的拓撲信息更新通知;或
[0016]發(fā)送拓撲信息查詢請求至所述第二電子設(shè)備;接收所述第二電子設(shè)備基于所述拓撲信息查詢請求反饋的拓撲信息更新通知。
[0017]優(yōu)選的,所述方法還包括:
[0018]接收所述第二電子設(shè)備發(fā)送的更新指令;所述更新指令攜帶有所述第一集群中的第一電子設(shè)備的當前狀態(tài)和所述需要服務(wù)的應(yīng)用的當前狀態(tài);
[0019]根據(jù)所述第一集群中的第一電子設(shè)備的當前狀態(tài)和所述需要服務(wù)的應(yīng)用的當前狀態(tài)計算得到當前所述第一集群中的第一電子設(shè)備與需要服務(wù)的應(yīng)用的對應(yīng)關(guān)系;
[0020]發(fā)送所述當前所述第一集群中的第一電子設(shè)備與需要服務(wù)的應(yīng)用的對應(yīng)關(guān)系至所述第二電子設(shè)備,以更新所述第二電子設(shè)備中存儲的拓撲信息。
[0021]優(yōu)選的,所述從預(yù)存的與所述第一應(yīng)用對應(yīng)的預(yù)分配序列號集合中確定出最小的序列號之前,還包括:
[0022]確定所述預(yù)分配序列號集合是否為空;
[0023]當所述預(yù)分配序列號集合為空時,發(fā)送預(yù)分配請求至所述第二電子設(shè)備;所述預(yù)分配請求中攜帶有所述第一應(yīng)用的應(yīng)用信息,用以獲得所述第二電子設(shè)備基于所述應(yīng)用信息返回的與所述第一應(yīng)用對應(yīng)的新序列號;
[0024]接收所述第二電子設(shè)備基于所述預(yù)分配請求返回的新序列號,并根據(jù)所述新序列號更新所述預(yù)分配序列號集合。
[0025]優(yōu)選的,更新后的所述預(yù)分配序列號集合中最小的序列號大于更新前的所述預(yù)分配序列號集合中最大的序列號。
[0026]第二方面,提供一種電子設(shè)備,第一集群包括至少一個所述電子設(shè)備,所述電子設(shè)備包括:
[0027]第一接收單元,用于接收客戶端發(fā)送的序列號請求;所述序列號請求中攜帶有第一應(yīng)用的應(yīng)用信息;
[0028]設(shè)備確定單元,用于根據(jù)所述應(yīng)用信息和自身設(shè)備中預(yù)存的拓撲信息,從所述第一集群中確定出與所述第一應(yīng)用對應(yīng)的電子設(shè)備作為目標電子設(shè)備;所述拓撲信息為所述第一集群中的電子設(shè)備與需要服務(wù)的應(yīng)用的對應(yīng)關(guān)系;判斷單元,用于判斷自身設(shè)備是否是所述目標電子設(shè)備;
[0029]序列號確定單元,用于當所述判斷單元的判斷結(jié)果為是時,從預(yù)存的與所述第一應(yīng)用對應(yīng)的預(yù)分配序列號集合中確定出最小的序列號,作為目標序列號;
[0030]第一發(fā)送單元,用于將所述序列號確定單元確定的目標序列號發(fā)送至所述客戶端;
[0031]第二發(fā)送單元,用于當所述判斷單元的判斷結(jié)果為否時,轉(zhuǎn)發(fā)所述序列號請求至所述目標電子設(shè)備,以使所述目標電子設(shè)備從預(yù)存的與所述第一應(yīng)用對應(yīng)的預(yù)分配序列號集合中確定出最小的序列號,作為目標序列號發(fā)送至所述客戶端。
[0032]優(yōu)選的,所述電子設(shè)備還包括:
[0033]更新確定單元,用于確定存儲電子設(shè)備中存儲的拓撲信息發(fā)生了更新時,觸發(fā)更新獲取單元;
[0034]所述更新獲取單元,用于獲取所述存儲電子設(shè)備中存儲的更新后的拓撲信息;
[0035]更新單元,用于用所述更新后的拓撲信息替換所述電子設(shè)備中預(yù)存的拓撲信息。
[0036]優(yōu)選的,所述更新確定單元包括:
[0037]第一更新接收子單元,用于接收所述存儲電子設(shè)備發(fā)送的拓撲信息更新通知;或
[0038]請求發(fā)送子單元和第二更新接收子單元;
[0039]其中,所述請求發(fā)送子單元,用于發(fā)送拓撲信息查詢請求至所述存儲電子設(shè)備;
[0040]所述第二更新接收子單元,用于接收所述存儲電子設(shè)備基于所述拓撲信息查詢請求反饋的拓撲信息更新通知。
[0041]優(yōu)選的,所述電子設(shè)備還包括:
[0042]第二接收單元,用于接收所述存儲電子設(shè)備發(fā)送的更新指令;所述更新指令攜帶有所述第一集群中的電子設(shè)備的當前狀態(tài)和所述需要服務(wù)的應(yīng)用的當前狀態(tài);
[0043]拓撲信息計算單元,用于根據(jù)所述第一集群中的電子設(shè)備的當前狀態(tài)和所述需要服務(wù)的應(yīng)用的當前狀態(tài)計算得到當前所述第一集群中的電子設(shè)備與需要服務(wù)的應(yīng)用的對應(yīng)關(guān)系;
[0044]第三發(fā)送單元,用于發(fā)送所述當前所述第一集群中的電子設(shè)備與需要服務(wù)的應(yīng)用的對應(yīng)關(guān)系至所述存儲電子設(shè)備,以更新所述存儲電子設(shè)備中存儲的拓撲信息。
[0045]優(yōu)選的,所述電子設(shè)備還包括:
[0046]空集確定單元,用于確定所述預(yù)分配序列號集合為空時,觸發(fā)序列號獲取單元;
[0047]所述序列號獲取單元,用于發(fā)送預(yù)分配請求至所述存儲電子設(shè)備;所述預(yù)分配請求中攜帶有所述第一應(yīng)用的應(yīng)用信息,用以獲得所述存儲電子設(shè)備基于所述應(yīng)用信息返回的與所述第一應(yīng)用對應(yīng)的新序列號;
[0048]第三接收單元,用于接收所述存儲電子設(shè)備基于所述預(yù)分配請求返回的新序列號;
[0049]序列號更新單元,用于根據(jù)所述新序列號更新所述預(yù)分配序列號集合。
[0050]優(yōu)選的,更新后的所述預(yù)分配序列號集合中最小的序列號大于更新前的所述預(yù)分配序列號集合中最大的序列號。
[0051]本申請實施例中提供的一個或多個技術(shù)方案,至少具有如下技術(shù)效果或優(yōu)點:
[0052]本申請實施例提供的序列號生成方法,采用分布式的集群架構(gòu)來生成序列號,具體的,第一集群中包括多個第一電子設(shè)備,每個第一電子設(shè)備與需要服務(wù)的應(yīng)用之間有一定的對應(yīng)關(guān)系,由各第一電子設(shè)備為與之對應(yīng)的應(yīng)用生成序列號。一方面,通過預(yù)存的應(yīng)用與第一電子設(shè)備的對應(yīng)關(guān)系來確定目標電子設(shè)備,保證同一時間,集群中只有一個電子設(shè)備能為該應(yīng)用提供序列號生成服務(wù),且每次都在該應(yīng)用的預(yù)分配序列號集合中確定出數(shù)值最小的序列號作為當前序列號,保證了同一個應(yīng)用的序列號的遞增要求;另一方面,當系統(tǒng)需要擴容時,只要增加集群中的第一電子設(shè)備的數(shù)量即可實現(xiàn),從而能夠滿足大規(guī)模分布式系統(tǒng)的多應(yīng)用序列號生成需求,且兼顧實現(xiàn)了適應(yīng)大規(guī)模系統(tǒng)和保證序列號遞增的技術(shù)效果。
【附圖說明】
[0053]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施