国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 微信小程式 微信開發(fā) 微信紅包實(shí)現(xiàn)原理猜想

微信紅包實(shí)現(xiàn)原理猜想

Feb 10, 2017 pm 02:31 PM
原理 微信 紅包

以下內(nèi)容來自QCon某高可用架構(gòu)群聊天記錄整理背景:有某個(gè)朋友諮詢微信紅包的架構(gòu),在官方或非官方同學(xué)的解釋和討論中得出以下討論內(nèi)容,在此期間有多個(gè)同學(xué)發(fā)紅包做現(xiàn)網(wǎng)演算法測試。

搶紅包過程

當(dāng)有人在群組裡發(fā)了一個(gè)N人的紅包,總金額M元,後臺大概發(fā)生的事情如下:

一、發(fā)紅包後臺操作:

在數(shù)據(jù)庫中增加一條紅包記錄,儲(chǔ)存到CKV,設(shè)定過期時(shí)間;

在Cache(可能是騰訊內(nèi)部kv資料庫,基於內(nèi)存,有落地,有內(nèi)核態(tài)網(wǎng)絡(luò)處理模組,以內(nèi)核模組形式提供服務(wù)))中增加一條記錄,存儲(chǔ)搶紅包的人數(shù)N

二、搶紅包後臺操作:

搶紅包分為搶和拆,搶操作在Cache層完成,透過原子減操作進(jìn)行紅包數(shù)遞減,到0 就表示搶光了,最終實(shí)際進(jìn)入後臺拆操作的量不大,透過操作的分離將無效請求直接擋在Cache層外面。這裡的原子減操作並不是真正意義上的原子減操作,是 其Cache層提供的CAS,透過比較版本號不斷嘗試,存在一定程度上的衝突,衝突的用戶會(huì)放行,讓其進(jìn)入下一步拆的操作,這也解釋了為啥有用戶搶到了拆 ? ? 開發(fā)現(xiàn)領(lǐng)完了的狀況。

拆紅包在資料庫完成,透過資料庫的事務(wù)操作累加已經(jīng)領(lǐng)取的數(shù)量和金額,插入一條領(lǐng)取 ? ? 流水,入帳為非同步操作,這也解釋了為啥在春節(jié)期間紅包領(lǐng)取後在餘額中看不到。拆的時(shí)候會(huì)即時(shí)計(jì)算金額,其金額為1分到剩餘平均值2倍之間隨機(jī)數(shù),一個(gè)總金 ? ? 額為M元的紅包,最大的紅包為 M * 2 /N(且不會(huì)超過M),拆了紅包後會(huì)更新剩餘金額和個(gè)數(shù)。財(cái)付通以20萬筆每秒入帳準(zhǔn)備,實(shí)際只到8萬每秒。

FAQ

既然在搶的時(shí)候有原子減了就不應(yīng)該出現(xiàn)搶到了拆開沒有的情況?
? ? 這裡的原子減並不是真正意義上的原子操作,是Cache層提供的CAS,透過比較版本號不斷嘗試。

cache和db掛了怎麼辦?
? ? 主備 +對帳

有沒有紅包個(gè)數(shù)沒了,但餘額還有狀況?
? ? 沒有,程式最後會(huì)有一個(gè)take all操作以及一個(gè)非同步對帳保障。

為什麼要分離搶和拆?

總思路是設(shè)定多層過濾網(wǎng),層層篩選,層層減少流量和壓力。這個(gè)設(shè)計(jì)最初是因?yàn)閾尣僮魇菢I(yè)務(wù)層,拆是入帳操作,一個(gè)操作太重了,中斷率高。 ? ? 從介面層面看,第一個(gè)介面純快取操作,搞壓能力強(qiáng),一個(gè)簡單查詢Cache擋住了絕大部分用戶,做了第一道篩選,所以大部分人會(huì)看到已經(jīng)搶完了的提示。

搶到紅包後再發(fā)紅包或是提現(xiàn),這裡有什麼策略嗎?
? ? 大額優(yōu)先入帳策略

有沒有從數(shù)據(jù)上證明每個(gè)紅包的機(jī)率是不是均等?
? ? 不是絕對均等,就是一個(gè)簡單的拍腦袋演算法。

拍腦袋演算法,會(huì)不會(huì)出現(xiàn)兩個(gè)最佳?
? ? 會(huì)出現(xiàn)金額一樣的,但是手氣最佳只有一個(gè),先搶到的那個(gè)最佳。

發(fā)紅包人的錢會(huì)不會(huì)凍結(jié)?
? ? 是直接即時(shí)扣掉,不是凍結(jié)。

採用即時(shí)算出金額是出於什麼考慮?
? ? 即時(shí)效率更高,預(yù)算才效率低。預(yù)算還要佔(zhàn)額外儲(chǔ)存。因?yàn)榧t包只佔(zhàn)一筆記錄而且有效期限就幾天,所以不需要太多空間。就算壓力大時(shí),水平擴(kuò)展機(jī)器是。

測試二:知乎使用者「馬景銠」的實(shí)驗(yàn):

這裡給出一份100樣本的調(diào)查抽樣樣本數(shù)據(jù),並提出自己的猜測。

1. 錢包錢數(shù)滿足截尾常態(tài)隨機(jī)數(shù)分佈。大致為在截尾常態(tài)分佈中取隨機(jī)數(shù),並用其求和數(shù)除以總價(jià)值,得到修正因子,再用修正因子乘上所有的隨機(jī)數(shù),得到紅包價(jià)值。

這種分佈意味著:低於平均值的紅包多,但是離平均值不遠(yuǎn);高於平均值的紅包少,但是遠(yuǎn)大於平均值的紅包偏多。

微信紅包實(shí)現(xiàn)原理猜想

圖1. 錢包價(jià)值與其頻率分佈直方圖及其正態(tài)擬合

但看分佈直方圖並不能推出它符合正態(tài)分佈,但是考慮到程序的簡潔性和隨機(jī)數(shù)的合理性,這是最合乎情理的一種猜測。

2. 越是後面的錢包,價(jià)值普遍更高

微信紅包實(shí)現(xiàn)原理猜想

圖2. 錢包序列數(shù)與其價(jià)值關(guān)係曲線

從圖2的線性擬合紅線可以看到,錢包價(jià)值的整體變化趨勢是在慢慢增大,其變化範(fàn)圍大約是一個(gè)綠色虛線上下界劃出的「通道」。 (曲線可以被圍在這麼一個(gè)正合乎常規(guī)的「通道」中,也從側(cè)面反映了規(guī)律1的合理性,說明了並不是均勻分佈的隨機(jī)數(shù))

從另一個(gè)平均數(shù)的圖中也可以看出這一規(guī)律。

微信紅包實(shí)現(xiàn)原理猜想


圖3. 平均數(shù)隨序列數(shù)的變化曲線

在樣本中,1000價(jià)值的錢包被分成100份,均值為10。然而在圖3我們可以看到在最後一個(gè)錢包之前,平均數(shù)一直低於10,這就說明了一開始的錢包價(jià)值偏低,一直被後期的錢包價(jià)值拉著往上走,後期的錢包價(jià)值更高。

3. 當(dāng)然平均數(shù)的圖還可以透露出另一個(gè)規(guī)律,那就是最後的那一個(gè)人往往容易走運(yùn)抽得比較多。因?yàn)樽钺崮且粋€(gè)人是錢包剩下多少就拿多少的,而之前所有人的平均數(shù)都低於10,所以至少保證了最後一個(gè)人會(huì)高於平均值。在本樣本中,98號錢包抽到35,最後一份錢包抽到46。

微信紅包實(shí)現(xiàn)原理猜想

綜上,根據(jù)樣本猜測:

1. 抽到的錢大多時(shí)候跟別人一樣少,但一旦一多,就容易多很多。

2. 越是抽後面的錢包,錢越容易多。

3. 最後一個(gè)人往往容易撞大運(yùn)。

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
抖音網(wǎng)頁版入口登錄鏈接地址https 抖音網(wǎng)頁版入口網(wǎng)址免費(fèi) 抖音網(wǎng)頁版入口登錄鏈接地址https 抖音網(wǎng)頁版入口網(wǎng)址免費(fèi) May 22, 2025 pm 04:24 PM

抖音網(wǎng)頁版的登錄入口是https://www.douyin.com/。登錄步驟包括:1.打開瀏覽器;2.輸入網(wǎng)址https://www.douyin.com/;3.點(diǎn)擊“登錄”按鈕並選擇登錄方式;4.輸入賬號密碼;5.完成登錄。網(wǎng)頁版提供了瀏覽、搜索、互動(dòng)、上傳視頻和個(gè)人主頁管理等功能,具有大屏幕體驗(yàn)、多任務(wù)處理、便捷的賬號管理和數(shù)據(jù)統(tǒng)計(jì)等優(yōu)勢。

拷貝漫畫(官網(wǎng)入口)_拷貝漫畫(nba)正版在線閱讀入口 拷貝漫畫(官網(wǎng)入口)_拷貝漫畫(nba)正版在線閱讀入口 Jun 05, 2025 pm 04:12 PM

拷貝漫畫無疑是一個(gè)不容錯(cuò)過的寶藏。在這裡,你可以找到各種風(fēng)格的籃球漫畫,從熱血?jiǎng)?lì)志的競技故事,到輕鬆幽默的日常喜劇,應(yīng)有盡有。無論是想重溫經(jīng)典,還是想發(fā)掘新作,拷貝漫畫都能滿足你的需求。通過拷貝漫畫提供的正版在線閱讀入口,你將告別盜版資源的困擾,享受高清流暢的閱讀體驗(yàn),更能支持你喜愛的漫畫作者,為正版漫畫的發(fā)展貢獻(xiàn)一份力量。

uc瀏覽器與qq瀏覽器哪個(gè)好用 uc和qq瀏覽器深度對比評測 uc瀏覽器與qq瀏覽器哪個(gè)好用 uc和qq瀏覽器深度對比評測 May 22, 2025 pm 08:33 PM

選擇UC瀏覽器還是QQ瀏覽器取決於你的需求:1.UC瀏覽器適合追求快速加載和豐富娛樂功能的用戶;2.QQ瀏覽器適合需要穩(wěn)定性和與騰訊產(chǎn)品無縫連接的用戶。

AI寫作軟件排行榜單前十名推薦 AI寫作軟件哪些免費(fèi) AI寫作軟件排行榜單前十名推薦 AI寫作軟件哪些免費(fèi) Jun 04, 2025 pm 03:27 PM

結(jié)合 2025 年最新行業(yè)動(dòng)態(tài)與多維度評測數(shù)據(jù),以下為綜合排名前十的 AI 寫作軟件推薦,涵蓋通用創(chuàng)作、學(xué)術(shù)研究、商業(yè)營銷等主流場景,同時(shí)兼顧中文優(yōu)化與本地化服務(wù):

奈斯漫畫官方頁面免費(fèi)漫畫在線看 奈斯漫畫登錄頁面免費(fèi)入口網(wǎng)站 奈斯漫畫官方頁面免費(fèi)漫畫在線看 奈斯漫畫登錄頁面免費(fèi)入口網(wǎng)站 Jun 12, 2025 pm 08:18 PM

奈斯漫畫,一個(gè)致力於為漫畫愛好者打造的沉浸式閱讀體驗(yàn)平臺,匯聚了海量國內(nèi)外優(yōu)質(zhì)漫畫資源。它不僅僅是一個(gè)漫畫閱讀平臺,更是一個(gè)連接漫畫家與讀者、分享漫畫文化的社區(qū)。通過簡潔直觀的界面設(shè)計(jì)和強(qiáng)大的搜索功能,奈斯漫畫讓你能夠輕鬆找到心儀的作品,享受流暢舒適的閱讀體驗(yàn)。告別漫長的等待和繁瑣的操作,即刻進(jìn)入奈斯漫畫的世界,開啟你的漫畫之旅吧!

蛙漫 網(wǎng)址在線看入口 漫蛙漫畫(網(wǎng)頁入口)在線觀看 蛙漫 網(wǎng)址在線看入口 漫蛙漫畫(網(wǎng)頁入口)在線觀看 Jun 12, 2025 pm 08:06 PM

蛙漫漫畫,憑藉其豐富多元的漫畫資源和便捷流暢的在線閱讀體驗(yàn),已成為眾多漫畫愛好者的首選。它就像一個(gè)充滿活力的池塘,源源不斷地湧現(xiàn)出新鮮有趣的故事,等待著你去發(fā)現(xiàn)和探索。蛙漫漫畫涵蓋了各種題材,從熱血冒險(xiǎn)到甜蜜戀愛,從奇幻科幻到懸疑推理,無論你喜歡哪種類型,都能在這裡找到心儀的作品。其簡潔直觀的界面設(shè)計(jì),更讓你能夠輕鬆上手,快速找到想看的漫畫,沉浸在精彩紛呈的漫畫世界中。

包子漫畫(入口)_包子漫畫(新入口)2025 包子漫畫(入口)_包子漫畫(新入口)2025 Jun 05, 2025 pm 04:18 PM

在這裡,您可以盡情暢遊於浩瀚的漫畫海洋,探索各種題材和風(fēng)格的作品,從熱血激昂的少年漫,到細(xì)膩動(dòng)人的少女漫,從懸疑燒腦的推理漫,到輕鬆搞笑的日常漫,應(yīng)有盡有,總有一款能夠觸動(dòng)您的心弦。我們不僅擁有海量的正版漫畫資源,還不斷引進(jìn)和更新最新的作品,確保您能夠第一時(shí)間閱讀到您喜愛的漫畫。

b安最新註冊地址_怎麼註冊b安交易所 b安最新註冊地址_怎麼註冊b安交易所 May 26, 2025 pm 07:12 PM

2025b安最新官網(wǎng)入口地址:https://www.marketwebb.co/zh-CN/join?ref=507720986&type=wenzi;幣安(Binance)交易所是一家全球性的加密貨幣交易所,服務(wù)包括北美、歐洲、臺灣、中東、香港、馬來西亞在內(nèi)的180個(gè)國家地區(qū),提供超過600種加密貨幣,在全球擁有2.7億註冊用戶。

See all articles