澳门六合免费心水资料大全2020

  

  • 
    聯系我們

    台灣依致美實業有限公司

    辦事熱線

    營業征詢:400-899-

    技術辦事:400-899-

    征詢熱線

    公司前台:-588

    售前征詢:-558

    公司地址

    台灣市噴鼻洲區興華路212號動力大廈二樓

    社會消息
    以後地位 > 首頁 > 社會消息

    公司年會爆點:抽獎體系可以如許開辟

    種別:社會消息宣布人:依致美宣布時光:2017-01-16

    年會快要,而年會抽獎環節必弗成少,然則抽獎體系卻還沒有。所以某一天,PM走過去說:小夥,手頭的需求修完成了吧!在年會開端之前必需做出一個抽獎體系。這個體系很簡略,後台可以設置總金額,然後每壹個用戶可以取得的金額規模,金額派完則顯示很遺憾沒有中獎,還要設置抽獎運動時光。

    公司年會爆點:抽獎體系可以如許開辟

    需求剖析

    一看這器械,就認為異常簡略。最簡略的一個計劃,運動時光放在一個數據表,總金額和曾經應用金額寄存在一個表,曾經派送的日記一個表。後台供給一個接口,客戶端手動點擊按鈕,則發送一個要求。賬號系統直接應用微信的oauth,接口起首斷定運動有無開端,假如開端則隨機一個金額,然後斷定假如派送該金額會不會超預算,假如不超預算,則挪用微信的現金接口發放零錢。

    公司年會爆點:抽獎體系可以如許開辟

    並提問題

    這個簡略計劃存在一個致命的成績,就是並發下,能夠招致超預算的成績。假如采取加鎖的方法,面臨多員工同時要求,體系100%癱瘓。(由於抽獎體系的辦事器是最通俗的1核1G 1M帶寬的辦事器)

    公司年會爆點:抽獎體系可以如許開辟

    那末不加鎖的情形,又能若何防止並發釀成的派送跨越預算的成績呢?一個簡略的方法,把分派派送金額的操作從並行釀成串行。那末就須要異步的編程辦法。最簡略的處置辦法,把義務寫入mysql,然後啓動一個自力的過程來一個義務一個義務的串行處置。異步的話,客戶端若何曉得辦事器曾經處置了呢?最簡略就是采取輪詢的辦法了,客戶端每隔幾秒就要求辦事器一次。

    公司年會爆點:抽獎體系可以如許開辟

    機能成績

    因為抽獎是短時光大批用戶要求的,假如直接讓要求落到mysql,相似DDOS進擊,普通的數據庫是扛不住的。而redis是1種基于內存的高並發NoSQL,在許多公司普遍應用,因為其機能異常好,而且其豐碩的數據接口完整可以勝任抽獎義務需求。這個時刻,你能夠有如許的疑問,我們的體系設計是怎樣的呢?

    • 抽獎體系相幹設置裝備擺設存儲在redis的一個key值,直接應用json格局

    • 客戶端要求的時刻斷定,時光能否在運動時光規模內

    • 客戶端要求假如時光在運動規模內,則把用戶添加到一個redis聚集,用于避免用戶反復要求,只要第一次要求才會添加到聚集後,再添加到一個redis列表。

    • 後台一個自力的過程,從redis列表pop第壹名用戶,然後分派一個金額,然後把金額和用戶信息壓入另外壹個redis列表B,同時寫入redis的hash構造,標示用戶取得若幹現金。壹向輪回該進程。

    • 後台另外壹個自力的過程,從redis列表B pop第壹名用戶,然後挪用發送現金接口,壹向輪回該進程。

    • 客戶端壹直輪詢獲得用戶金額的接口,該接口從哪壹個hash構造獲得用戶金額,然後沒稀有據,則告知客戶端若幹秒後再次要求。

    公司年會爆點:抽獎體系可以如許開辟

    前端優化

    因為介入運動的人數較多,並且辦事器是放在外網的,所以須要斟酌帶寬的成績。

    • 第一步,把靜態資本放到cdn。

    • 第二步,抽獎頁面靜態化,同時也放到cdn,如許子辦事器只須要蒙受用戶要求和登錄便可。

    • 第三步,因為采取了微信登錄,所以登錄體系采取一個自力的過程,而且應用異步框架來處置高並發。

    • 第四步,前端發送要求隊列化處置,防止用戶壹直點擊,形成大批要求。

    公司年會爆點:抽獎體系可以如許開辟

    總結

    • 整套體系開辟沒有任何難度,獨壹須要留意高並發下機能和數據成績。

    • 靜態資本放到cdn,防止帶寬成爲瓶頸。

    • 把mysql操作釀成redis操作,處理io成績。

    
    客服1 客服2 客服3
    澳门六合免费心水资料大全2020