亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種隨機比算法的實現(xiàn)方法

        2021-11-18 14:58:46李堅王平徐金波
        科學(xué)與生活 2021年20期
        關(guān)鍵詞:網(wǎng)絡(luò)環(huán)境

        李堅 王平 徐金波

        摘要:一種隨機比例算法,可應(yīng)用于資源的負載均衡選擇。主要目的在于當(dāng)需要同類型資源選擇時,保持資源實體的按照預(yù)設(shè)的比例,讓資源隨機被選中。這種方法可應(yīng)用于短信服務(wù)的多接入商的主備服務(wù)商動態(tài)選擇場景,保持主流量落到主通道,輔助流量落到多個備用通道,規(guī)避依賴于某個SP第三方而產(chǎn)生的單點故障的問題發(fā)生。并且主備切換時只需改變其資源的占比參數(shù)就能動態(tài)的進行調(diào)整。

        關(guān)鍵詞:正態(tài)分布 隨機比例 負載均衡 網(wǎng)絡(luò)環(huán)境

        一、研究背景

        設(shè)定有限資源(1~N個),在特定條件下應(yīng)用場景下實現(xiàn),保持相對穩(wěn)定的比例同時按照隨機序列的方式對資源進行選擇,例如:A,B,C這3個資源,每次隨機的選擇一個資源,在進行例如1000次的選擇中,出現(xiàn)A,B,C三個資源總比例保持在預(yù)先設(shè)定的比例值中成正態(tài)分布。

        二、應(yīng)用場景

        其中一種應(yīng)用場景是,多服務(wù)商接入的短信服務(wù)平臺。為保證系統(tǒng)的健壯性排除單點故障風(fēng)險,會同時接入幾個(兩家以上)通道服務(wù)商。在發(fā)送短信時不固定用某一家通過隨機的方式進行選擇,但是因為存在短信通道服務(wù)商的價格與性能差異,需要區(qū)分主通道與備用通道,即主流量從主通道走,備用通道零散的分配一些流量。當(dāng)接收到業(yè)務(wù)的短信發(fā)送請求時,按照預(yù)先設(shè)定的比例隨機選擇使用哪個通道發(fā)送短信。

        三、研究內(nèi)容

        例如:有3個供應(yīng)商(后面簡稱SP),每次從中選擇一個SP提供服務(wù),但是需要保持每次是進行隨機的選擇,但命中率要保持總量相對穩(wěn)定的比例;

        如要保持這樣的比例:1號SP 5%,2號SP 25%,3號SP 70%,總量在1000次以上的分配中保持按照指定的比例均衡分布。

        以上的應(yīng)用舉例是實際運行于生產(chǎn)環(huán)境的業(yè)務(wù)邏輯,短信服務(wù)中通道發(fā)送選擇時通道資源的使用占比控制,即要保持備用通道不能閑置,又要保證主流量從主通道走,還要保持每次選擇是隨機非線性的。

        隨機比例選擇另一個關(guān)鍵點是要解決長時間連續(xù)選擇同一個資源的情況,規(guī)避在業(yè)務(wù)過程中,某個資源突然出現(xiàn)軟故障(即非直接阻斷業(yè)務(wù)報錯的故障,如某個環(huán)節(jié)少做了一些非決定向的非重要動作,較難第一時間發(fā)現(xiàn))時,而此資源又被線性的持續(xù)被使用較長時間,以至持續(xù)被用戶感知出現(xiàn)大面積故障。

        算法解法:

        要同時解決按比例的產(chǎn)生隨機值,最終要達到這個結(jié)果,因此算法需要有個假設(shè),即保持產(chǎn)生的隨機數(shù)數(shù)量需要保持一個基數(shù)之上(比如:1000次或上萬次),那么基數(shù)越大隨機數(shù)的分布態(tài)就能接近這個隨機比例值,數(shù)據(jù)量越小偏移越大,所以此算法不可用于產(chǎn)生隨機數(shù)量基數(shù)過小的情況。

        以此為前提,可導(dǎo)出一個將其稱之為的丟球的算法,原理如下圖。

        準(zhǔn)備一個一維數(shù)組槽位,按照需求比例在槽位中事先放入三個對象A,B,C。設(shè)選中對象的概率分別為:A是30%,B是10%,C是60%。

        那么需要建立坑位數(shù)為10個的槽位,其中3洞放入A,1個洞放B,6個洞放C,總共10個坑位。

        由隨機數(shù)發(fā)生器,產(chǎn)生0-9中的任意一個數(shù)N,把球丟到槽位洞中N中,取出命中的對象,并記錄這個對象名。

        如此循環(huán),不斷的產(chǎn)生隨機數(shù)往里面丟,經(jīng)過測試當(dāng)生成的隨機數(shù)總量超過槽位數(shù)10倍以上后,命中A,B,C這三個對象的占比會呈現(xiàn)出預(yù)先設(shè)定好的比例(A:30%,B:10%,C:60%)中的正態(tài)分布情況。

        實際的線上生產(chǎn)環(huán)境的數(shù)據(jù):

        上表為生產(chǎn)環(huán)境中一周短信負載發(fā)送量的匯總信息,左三列為短信每日的發(fā)送量,右側(cè)三列是每個SP通道的比例分布,主通道是【SP:創(chuàng)*】另兩個是備用通道。經(jīng)過算法選擇器每日1.5萬次左右的選擇結(jié)果觀察,可以看出發(fā)送比例相對穩(wěn)定的控制在 25%,15%,60%。雖然會有微小的漂移,但是總體符合算法的預(yù)期結(jié)果。

        以下為在實際用生產(chǎn)環(huán)境中的php語言實現(xiàn)代碼:

        /** 隨機數(shù)百分比計算*/

        class RandomProportion{

        private $_aPool = []; //緩沖池

        private $_iPoolLen = 0; //緩沖池大小

        /**

        * 初始化

        * @param array $aParam

        * <li>['key'=>'int 比例值',...]</li>

        * <li>example:['1'=>'55','2'=>'20','3'=>'15','4'=>'10']</li>

        * @return void

        */

        public function init($aParam){

        $this->_aPool = [];

        $this->_iPoolLen = 0;

        if (!empty($this->_aPool)){

        unset($this->_aPool);

        }

        foreach ($aParam as $sKey => $iVal){

        $iVal = abs(intval($iVal));

        if ($iVal > 0){ //大于0才分配槽位

        for ($i=0; $i<$iVal; $i++){

        $this->_aPool[] = $sKey;

        }

        }

        }

        $this->_iPoolLen = count($this->_aPool);

        }

        /**

        * 擲骰子

        * <li>必須先調(diào)用init()初始化函數(shù)后,再用此函數(shù)返回一個選中的key</li>

        */

        public function rollDice(){

        return $this->_aPool[rand(0,$this->_iPoolLen-1)];

        }

        }

        //使用方式

        $o = new RandomProportion();

        $o->init(['1'=>'55','2'=>'20','3'=>'15','4'=>'10']);

        $o->rollDice(); //調(diào)用次函數(shù)后可獲取一個隨機值為(1~4)的值

        優(yōu)化方案:

        根據(jù)上面的邏輯,在實際使用中生成一維數(shù)組的長度的條件為,待選擇的資源數(shù)量 * 比例值 * 基數(shù)長度。而三個值相乘的值必須為正整數(shù)(原因分配內(nèi)存槽位時必須是正整數(shù))。

        例如:A*34.5%*N,B*1.3%*N,C*58.7%*N,D*5.5%*N;那么此時N的取值需要=1000才能保證總槽位是正整數(shù),然后分配內(nèi)存。

        實際應(yīng)用中,這個重建過程需要消耗存儲資源。例如:php開發(fā)環(huán)境因其特性使得web服務(wù)php-fpm是工作在多進程而不是多線程,所以法共享內(nèi)存區(qū)塊,需要由進程在每次激活時都要重建一次這樣的區(qū)塊存儲槽位,當(dāng)高并發(fā)的時候?qū)⒉煌5纳蓛?nèi)存區(qū)間,填入實體編號,再選擇其中一個值,從而導(dǎo)致了資源與cpu的浪費。因此我們優(yōu)化其邏輯使得可以不必生成坑位數(shù)組存儲區(qū)間,只需按照對象生成一個小巧的二維數(shù)組(a[2~2+N][2]),例如:A(0):25%,B(1):15%,C(2):60%,生成的二數(shù)組每個維度下標(biāo)只存儲兩個值0:0~24,1:25~39,2:40~99;數(shù)組結(jié)構(gòu)如下所示:

        a[0][0]=0; a[0][1]=24;

        a[1][0]=25; a[1][1]=39;

        a[2][0]=40; a[2][1]=99;

        接著通過隨機數(shù)發(fā)生器,生成0-99之間的一個隨機數(shù),在數(shù)組中比較落入哪個區(qū)間內(nèi),取命中的數(shù)組一維下標(biāo),0-2對應(yīng)到A~C即可選中資源。

        小結(jié)

        本算法邏輯簡單可以用任何開發(fā)語言實現(xiàn),無需依賴第三方資源,僅用數(shù)組加隨機數(shù)發(fā)生器就能實現(xiàn)需要的功能。實際的代碼已經(jīng)在線上生產(chǎn)環(huán)境運行了將近兩年,穩(wěn)定的解決了按比例隨機選擇資源的需求。

        對于此算法的泛化應(yīng)用還可使用在優(yōu)惠券抽獎的環(huán)節(jié)。比如提前準(zhǔn)備了固定資源總量的獎勵,按照隨機比例的方式來抽取,這樣的好處是可盡量規(guī)避活動一開始就將一二等獎抽光的情況發(fā)生,導(dǎo)致后剩下的都是三等獎。

        參考文獻

        [1] 文天才,劉保延,何麗云,白文靜,閆世艷,李洪皎,呂曉穎,王鑫,張艷寧.最小化隨機算法形式化定義與優(yōu)化[J].中國數(shù)字醫(yī)學(xué),2017:105-108.

        [2] 尹貴祥,劉新茂.隨機選擇算法的研究[J].現(xiàn)代電子技術(shù),2011:89-91.

        [3] 劉克劍,劉心松,吳艾.一種多資源負載平衡算法———RLBA[J].計算機應(yīng)用,2005:42-43+46.

        [4]韓世遷. (2011). 概率論與數(shù)理統(tǒng)計. 化學(xué)工業(yè)出版社.

        [5]蘭榮杰. (2016). 從概率不確定性解讀復(fù)雜性. 系統(tǒng)科學(xué)學(xué)報,v.24;No.94(02),12-15+24.

        [6] 瞿威.網(wǎng)絡(luò)服務(wù)的負載均衡探究[J].中國金融電腦,2009:57-59+63.

        [7] 張永強.支持高負載的短信服務(wù)軟件性能研究[J].微計算機信息,2007:197+237-238.

        猜你喜歡
        網(wǎng)絡(luò)環(huán)境
        網(wǎng)絡(luò)環(huán)境對藝術(shù)類大學(xué)生的影響和對策
        人間(2016年27期)2016-11-11 16:39:37
        網(wǎng)絡(luò)環(huán)境下高職英語課程多維度評價方式研究
        網(wǎng)絡(luò)環(huán)境下高校思想政治教育創(chuàng)新路徑探討
        網(wǎng)絡(luò)環(huán)境下成人學(xué)習(xí)的有效性探究
        網(wǎng)絡(luò)環(huán)境下中職計算機教學(xué)的探析
        職業(yè)(2016年10期)2016-10-20 22:29:07
        網(wǎng)絡(luò)環(huán)境下大學(xué)生安全意識的培養(yǎng)及教育途徑的機制研究
        網(wǎng)絡(luò)環(huán)境下大學(xué)生自主學(xué)習(xí)能力培養(yǎng)策略
        基于網(wǎng)絡(luò)環(huán)境視角的學(xué)校圖書管理問題研究
        試論高校圖書館在網(wǎng)絡(luò)環(huán)境沖擊下的人文建設(shè)
        商(2016年27期)2016-10-17 06:30:59
        網(wǎng)絡(luò)環(huán)境下的大學(xué)生道德與法治教育淺析
        考試周刊(2016年79期)2016-10-13 23:21:20
        国内精品少妇高潮视频| 91情侣视频| 日韩精品有码在线视频| 人妻精品久久一区二区三区 | 国产剧情麻豆女教师在线观看| 日韩秘 无码一区二区三区| 丝袜美女美腿一区二区| 一区二区三区四区草逼福利视频| 人妻少妇精品视频三区二区一区| 亚洲丁香五月激情综合| 亚洲AV无码乱码精品国产草莓| 日本一区二区三区综合视频| 精品亚洲a∨无码一区二区三区| 成人片黄网站色大片免费观看cn| 国产99页| 国产三级视频在线观看国产| 色综合久久网| 中文无码乱人伦中文视频在线v| 精品综合久久久久久8888| 中文字幕日韩精品中文字幕| 亚洲熟妇无码久久精品| 少妇脱了内裤让我添| 免费一级a毛片在线播出| 蜜臀人妻精品一区二区免费| а√中文在线资源库| 人人做人人妻人人精| 国产激情一区二区三区在线蜜臀| 天堂蜜桃视频在线观看| 中文字幕丰满乱子无码视频| 国产91精选在线观看麻豆| 狼人综合干伊人网在线观看| 蜜桃视频在线观看免费亚洲| 少妇下蹲露大唇无遮挡| 久久一区二区三区四区| 麻豆精品国产免费av影片| 男女猛烈拍拍拍无挡视频| 国产激情з∠视频一区二区 | 我想看久久久一级黄片| 久久亚洲av午夜福利精品一区| 国产一区日韩二区欧美三区| 日本高清中文一区二区三区|