爱一夜夜爽 99久久无色_自拍视频精品一区二区三区_欧美日韩一区观看_欧美-级高清免费一片

紅包禮包小程序系統(tǒng)管理app功能軟件開(kāi)發(fā)H5網(wǎng)頁(yè)版成品制作-交換夫婦倫理完整版|午夜性色一區(qū)二區(qū)三區(qū)不卡視頻

報(bào)價(jià)
請(qǐng)來(lái)電詢(xún)價(jià)
聯(lián)系電話(huà):
15515818101
微信號(hào)
shunqiwang01
軟件開(kāi)發(fā)
小程序
    1.微信紅包架構(gòu)
    1.1業(yè)務(wù)場(chǎng)景
  軟件開(kāi)發(fā)公司有哪些,小程序開(kāi)發(fā)怎么選,小程序軟件開(kāi)發(fā)公司, 微信紅包(尤其是發(fā)在微信群里的紅包,即群紅包)業(yè)務(wù)形態(tài)上很類(lèi)似網(wǎng)上的普通商品“”活動(dòng)。
   用戶(hù)在微信群里發(fā)一個(gè)紅包,等同于是普通商品“”活動(dòng)的商品上架;微信群里的所有用戶(hù)搶紅包的動(dòng)作,等同于“”活動(dòng)中的查詢(xún)庫(kù)存;用戶(hù)搶到紅包后拆紅包的動(dòng)作,則對(duì)應(yīng)“”活動(dòng)中用戶(hù)的“”動(dòng)作。
    不過(guò)除了上面的相同點(diǎn)之外,微信紅包在業(yè)務(wù)形態(tài)上與普通商品“”活動(dòng)相比,還具備自身的特點(diǎn):
    首先,微信紅包業(yè)務(wù)比普通商品“”有更海量的并發(fā)要求。
   微信紅包用戶(hù)在微信群里發(fā)一個(gè)紅包,等同于在網(wǎng)上發(fā)布一次商品“”活動(dòng)。假設(shè)同一時(shí)間有10萬(wàn)個(gè)群里的用戶(hù)同時(shí)在發(fā)紅包,那就相當(dāng)于同一時(shí)間有10萬(wàn)個(gè)“”活動(dòng)發(fā)布出去。10萬(wàn)個(gè)微信群里的用戶(hù)同時(shí)搶紅包,將產(chǎn)生海量的并發(fā)請(qǐng)求。
    其次,微信紅包業(yè)務(wù)要求更嚴(yán)格的安全級(jí)別。
紅包禮包小程序系統(tǒng)管理app功能軟件開(kāi)發(fā)H5網(wǎng)頁(yè)版成品制作-交換夫婦倫理完整版|午夜性色一區(qū)二區(qū)三區(qū)不卡視頻
    微信紅包業(yè)務(wù)本質(zhì)上是資金交易。微信紅包是微信支付的一個(gè)商戶(hù),提供資金流轉(zhuǎn)服務(wù)。
   用戶(hù)發(fā)紅包時(shí),相當(dāng)于在微信紅包這個(gè)商戶(hù)上使用微信支付購(gòu)買(mǎi)一筆“錢(qián)”,并且收貨地址是微信群。當(dāng)用戶(hù)支付成功后,紅包“發(fā)貨”到微信群里,群里的用戶(hù)拆開(kāi)紅包后,微信紅包提供了將“錢(qián)”轉(zhuǎn)入折紅包用戶(hù)微信零錢(qián)的服務(wù)。
   資金交易業(yè)務(wù)比普通商品“”活動(dòng)有更高的安全級(jí)別要求。普通的商品“”商品由商戶(hù)提供,庫(kù)存是商戶(hù)預(yù)設(shè)的,“”時(shí)可以允許存在“超賣(mài)”(即實(shí)際被搶的商品數(shù)量比計(jì)劃的庫(kù)存多)、“少賣(mài)”(即實(shí)際被搶的商戶(hù)數(shù)量比計(jì)劃的庫(kù)存少)的情況。但是對(duì)于微信紅包,用戶(hù)發(fā)100元的紅包不可以被拆出101元;用戶(hù)發(fā)100元只被領(lǐng)取99元時(shí),剩下的1元在24小時(shí)過(guò)期后要地退還給發(fā)紅包用戶(hù),不能多也不能少。
    1.2業(yè)務(wù)邏輯
   一個(gè)“”活動(dòng),對(duì)應(yīng)DB中的一條庫(kù)存記錄。當(dāng)用戶(hù)進(jìn)行商品“”時(shí),系統(tǒng)的主要邏輯在于DB中庫(kù)存的操作上。一般來(lái)說(shuō),對(duì)DB的操作流程有以下三步:
    a.鎖庫(kù)存
    b.插入“”記錄
    c.更新庫(kù)存
   “”系統(tǒng)的設(shè)計(jì)難點(diǎn)就在這個(gè)事務(wù)操作上。商品庫(kù)存在DB中記為一行,大量用戶(hù)同時(shí)“”同一商品時(shí),個(gè)到達(dá)DB的請(qǐng)求鎖住了這行庫(kù)存記錄。在個(gè)事務(wù)完成提交之前這個(gè)鎖一直被個(gè)請(qǐng)求占用,后面的所有請(qǐng)求需要排隊(duì)等待。同時(shí)參與“”的用戶(hù)越多,并發(fā)進(jìn)DB的請(qǐng)求越多,請(qǐng)求排隊(duì)越嚴(yán)重。因此,并發(fā)請(qǐng)求搶鎖,是典型的商品“”系統(tǒng)的設(shè)計(jì)難點(diǎn)。
   微信紅包業(yè)務(wù)相比普通商品“”活動(dòng),具有海量并發(fā)、高安全級(jí)別要求的特點(diǎn)。在微信紅包系統(tǒng)的設(shè)計(jì)上,除了并發(fā)請(qǐng)求搶鎖之外,還有以下兩個(gè)突出難點(diǎn):
紅包禮包小程序系統(tǒng)管理app功能軟件開(kāi)發(fā)H5網(wǎng)頁(yè)版成品制作-交換夫婦倫理完整版|午夜性色一區(qū)二區(qū)三區(qū)不卡視頻
   首先,事務(wù)級(jí)操作量極大。上文介紹微信紅包業(yè)務(wù)特點(diǎn)時(shí)提到,普遍情況下同時(shí)會(huì)有數(shù)以萬(wàn)計(jì)的微信群在發(fā)紅包。這個(gè)業(yè)務(wù)特點(diǎn)映射到微信紅包系統(tǒng)設(shè)計(jì)上,就是有數(shù)以萬(wàn)計(jì)的“并發(fā)請(qǐng)求搶鎖”同時(shí)在進(jìn)行。這使得DB的壓力比普通單個(gè)商品“庫(kù)存”被鎖要大很多倍。
   其次,事務(wù)性要求嚴(yán)格。微信紅包系統(tǒng)本質(zhì)上是一個(gè)資金交易系統(tǒng),相比普通商品“”系統(tǒng)有更高的事務(wù)級(jí)別要求。
    方案一,使用內(nèi)存操作替代實(shí)時(shí)的DB事務(wù)操作。
   如圖2所示,將“實(shí)時(shí)扣庫(kù)存”的行為上移到內(nèi)存Cache中操作,內(nèi)存Cache操作成功直接給Server返回成功,然后異步落DB持久化。
    這個(gè)方案的優(yōu)點(diǎn)是用內(nèi)存操作替代磁盤(pán)操作,提高了并發(fā)性能。
   但是缺點(diǎn)也很明顯,在內(nèi)存操作成功但DB持久化失敗,或者內(nèi)存Cache故障的情況下,DB持久化會(huì)丟數(shù)據(jù),不適合微信紅包這種資金交易系統(tǒng)。
    方案二,使用樂(lè)觀鎖替代悲觀鎖。
   所謂悲觀鎖,是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)里的一種并發(fā)控制的方法。它可以阻止一個(gè)事務(wù)以影響其他用戶(hù)的方式來(lái)修改數(shù)據(jù)。如果一個(gè)事務(wù)執(zhí)行的操作對(duì)某行數(shù)據(jù)應(yīng)用了鎖,那只有當(dāng)這個(gè)事務(wù)把鎖釋放,其他事務(wù)才能夠執(zhí)行與該鎖沖突的操作。對(duì)應(yīng)于上文分析中的“并發(fā)請(qǐng)求搶鎖”行為。
   所謂樂(lè)觀鎖,它假設(shè)多用戶(hù)并發(fā)的事務(wù)在處理時(shí)不會(huì)彼此互相影響,各事務(wù)能夠在不產(chǎn)生鎖的情況下處理各自影響的那部分?jǐn)?shù)據(jù)。在提交數(shù)據(jù)更新之前,每個(gè)事務(wù)會(huì)先檢查在該事務(wù)讀取數(shù)據(jù)后,有沒(méi)有其他事務(wù)又修改了該數(shù)據(jù)。如果其他事務(wù)有更新的話(huà),正在提交的事務(wù)會(huì)進(jìn)行回滾。
   商品“”系統(tǒng)中,樂(lè)觀鎖的具體應(yīng)用方法,是在DB的“庫(kù)存”記錄中維護(hù)一個(gè)版本號(hào)。在更新“庫(kù)存”的操作進(jìn)行前,先去DB獲取當(dāng)前版本號(hào)。在更新庫(kù)存的事務(wù)提交時(shí),檢查該版本號(hào)是否已被其他事務(wù)修改。如果版本沒(méi)被修改,則提交事務(wù),且版本號(hào)加1;如果版本號(hào)已經(jīng)被其他事務(wù)修改,則回滾事務(wù),并給上層報(bào)錯(cuò)。
    這個(gè)方案解決了“并發(fā)請(qǐng)求搶鎖”的問(wèn)題,可以提高DB的并發(fā)處理能力。
    但是如果應(yīng)用于微信紅包系統(tǒng),則會(huì)存在下面三個(gè)問(wèn)題:
   如果拆紅包采用樂(lè)觀鎖,那么在并發(fā)搶到相同版本號(hào)的拆紅包請(qǐng)求中,只有一個(gè)能拆紅包成功,其他的請(qǐng)求將事務(wù)回滾并返回失敗,給用戶(hù)報(bào)錯(cuò),用戶(hù)體驗(yàn)完全不可接受。
   如果采用樂(lè)觀鎖,將會(huì)導(dǎo)致時(shí)間同時(shí)拆紅包的用戶(hù)有一部分直接返回失敗,反而那些“手慢”的用戶(hù),有可能因?yàn)椴l(fā)減小后拆紅包成功,這會(huì)帶來(lái)用戶(hù)體驗(yàn)上的負(fù)面影響。
    如果采用樂(lè)觀鎖的方式,會(huì)帶來(lái)大數(shù)量的無(wú)效更新請(qǐng)求、事務(wù)回滾,給DB造成不必要的額外壓力。
    基于以上原因,微信紅包系統(tǒng)不能采用樂(lè)觀鎖的方式解決并發(fā)搶鎖問(wèn)題。
    1.3微信紅包系統(tǒng)的高并發(fā)解決方案
    綜合上面的分析,微信紅包系統(tǒng)針對(duì)相應(yīng)的技術(shù)難點(diǎn),采用了下面幾個(gè)方案,解決高并發(fā)問(wèn)題。
    1.系統(tǒng)垂直SET化,分而治之。
   微信紅包用戶(hù)發(fā)一個(gè)紅包時(shí),微信紅包系統(tǒng)生成一個(gè)ID作為這個(gè)紅包的標(biāo)識(shí)。接下來(lái)這個(gè)紅包的所有發(fā)紅包、搶紅包、拆紅包、查詢(xún)紅包詳情等操作,都根據(jù)這個(gè)ID關(guān)聯(lián)。
   紅包系統(tǒng)根據(jù)這個(gè)紅包ID,按一定的規(guī)則(如按ID尾號(hào)取模等),垂直上下切分。切分后,一個(gè)垂直鏈條上的邏輯Server服務(wù)器、DB統(tǒng)稱(chēng)為一個(gè)SET。
   各個(gè)SET之間相互獨(dú)立,互相解耦。并且同一個(gè)紅包ID的所有請(qǐng)求,包括發(fā)紅包、搶紅包、拆紅包、查詳情詳情等,垂直stick到同一個(gè)SET內(nèi)處理,高度內(nèi)聚。通過(guò)這樣的方式,系統(tǒng)將所有紅包請(qǐng)求這個(gè)巨大的洪流分散為多股小流,互不影響,分而治之,如下圖所示。
    這個(gè)方案解決了同時(shí)存在海量事務(wù)級(jí)操作的問(wèn)題,將海量化為小量。
    2.邏輯Server層將請(qǐng)求排隊(duì),解決DB并發(fā)問(wèn)題。
   紅包系統(tǒng)是資金交易系統(tǒng),DB操作的事務(wù)性無(wú)法避免,所以會(huì)存在“并發(fā)搶鎖”問(wèn)題。但是如果到達(dá)DB的事務(wù)操作(也即拆紅包行為)不是并發(fā)的,而是串行的,就不會(huì)存在“并發(fā)搶鎖”的問(wèn)題了。
   按這個(gè)思路,為了使拆紅包的事務(wù)操作串行地進(jìn)入DB,只需要將請(qǐng)求在Server層以FIFO(先進(jìn)先出)的方式排隊(duì),就可以達(dá)到這個(gè)效果。從而問(wèn)題就集中到Server的FIFO隊(duì)列設(shè)計(jì)上。
    微信紅包系統(tǒng)設(shè)計(jì)了分布式的、輕巧的、靈活的FIFO隊(duì)列方案。其具體實(shí)現(xiàn)如下:
    首先,將同一個(gè)紅包ID的所有請(qǐng)求stick到同一臺(tái)Server。
紅包禮包小程序系統(tǒng)管理app功能軟件開(kāi)發(fā)H5網(wǎng)頁(yè)版成品制作-交換夫婦倫理完整版|午夜性色一區(qū)二區(qū)三區(qū)不卡視頻
   上面SET化方案已經(jīng)介紹,同個(gè)紅包ID的所有請(qǐng)求,按紅包IDstick到同個(gè)SET中。不過(guò)在同個(gè)SET中,會(huì)存在多臺(tái)Server服務(wù)器同時(shí)連接同一臺(tái)DB(基于容災(zāi)、性能考慮,需要多臺(tái)Server互備、均衡壓力)。
   為了使同一個(gè)紅包ID的所有請(qǐng)求,stick到同一臺(tái)Server服務(wù)器上,在SET化的設(shè)計(jì)之外,微信紅包系統(tǒng)添加了一層基于紅包IDhash值的分流,如下圖所示。
    其次,設(shè)計(jì)單機(jī)請(qǐng)求排隊(duì)方案。
   將stick到同一臺(tái)Server上的所有請(qǐng)求在被接收進(jìn)程接收后,按紅包ID進(jìn)行排隊(duì)。然后串行地進(jìn)入worker進(jìn)程(執(zhí)行業(yè)務(wù)邏輯)進(jìn)行處理,從而達(dá)到排隊(duì)的效果,如下圖所示。
    Zui后,增加memcached控制并發(fā)。
   為了防止Server中的請(qǐng)求隊(duì)列過(guò)載導(dǎo)致隊(duì)列被降級(jí),從而所有請(qǐng)求擁進(jìn)DB,系統(tǒng)增加了與Server服務(wù)器同機(jī)部署的memcached,用于控制拆同一個(gè)紅包的請(qǐng)求并發(fā)數(shù)。
   具體來(lái)說(shuō),利用memcached的CAS原子累增操作,控制同時(shí)進(jìn)入DB執(zhí)行拆紅包事務(wù)的請(qǐng)求數(shù),超過(guò)預(yù)先設(shè)定數(shù)值則直接拒絕服務(wù)。用于DB負(fù)載升高時(shí)的降級(jí)體驗(yàn)。
    通過(guò)以上三個(gè)措施,系統(tǒng)有效地控制了DB的“并發(fā)搶鎖”情況。
    3.雙維度庫(kù)表設(shè)計(jì),保障系統(tǒng)性能穩(wěn)定
   紅包系統(tǒng)的分庫(kù)表規(guī)則,初期是根據(jù)紅包ID的hash值分為多庫(kù)多表。隨著紅包數(shù)據(jù)量逐漸增大,單表數(shù)據(jù)量也逐漸增加。而DB的性能與單表數(shù)據(jù)量有一定相關(guān)性。當(dāng)單表數(shù)據(jù)量達(dá)到一定程度時(shí),DB性能會(huì)有大幅度下降,影響系統(tǒng)性能穩(wěn)定性。采用冷熱分離,將歷史冷數(shù)據(jù)與當(dāng)前熱數(shù)據(jù)分開(kāi)存儲(chǔ),可以解決這個(gè)問(wèn)題。
   處理微信紅包數(shù)據(jù)的冷熱分離時(shí),系統(tǒng)在以紅包ID維度分庫(kù)表的基礎(chǔ)上,增加了以循環(huán)天分表的維度,形成了雙維度分庫(kù)表的特色。
   具體來(lái)說(shuō),就是分庫(kù)表規(guī)則像db_xx.t_y_dd設(shè)計(jì),其中,xx/y是紅包ID的hash值后三位,dd的取值范圍在01~31,代表一個(gè)月天數(shù)Zui多31天。
   通過(guò)這種雙維度分庫(kù)表方式,解決了DB單表數(shù)據(jù)量膨脹導(dǎo)致性能下降的問(wèn)題,保障了系統(tǒng)性能的穩(wěn)定性。同時(shí),在熱冷分離的問(wèn)題上,又使得數(shù)據(jù)搬遷變得簡(jiǎn)單而優(yōu)雅。
   ,微信紅包系統(tǒng)在解決高并發(fā)問(wèn)題上的設(shè)計(jì),主要采用了SET化分治、請(qǐng)求排隊(duì)、雙維度分庫(kù)表等方案,使得單組DB的并發(fā)性能提升了8倍左右,取得了很好的效果。
    總結(jié)
   微信紅包系統(tǒng)是一個(gè)高并發(fā)的資金交易系統(tǒng),的技術(shù)挑戰(zhàn)是保障并發(fā)性能與資金安全。這種全新的技術(shù)挑戰(zhàn),傳統(tǒng)的“”系統(tǒng)設(shè)計(jì)方案已不能完全解決。在分析了業(yè)界“”系統(tǒng)解決方案的基礎(chǔ)上,微信紅包采用了SET化、請(qǐng)求排隊(duì)串行化、雙維度分庫(kù)表等設(shè)計(jì),形成了獨(dú)特的高并發(fā)、資金安全系統(tǒng)解決方案,并在平時(shí)節(jié)假日、2015和2016春節(jié)實(shí)踐中充分證明了可行性,取得了顯著的效果。在剛剛過(guò)去的2017雞年除夕夜,微信紅包收發(fā)峰值達(dá)到76萬(wàn)每秒,收發(fā)微信紅包142億個(gè),微信紅包系統(tǒng)的表現(xiàn)穩(wěn)定,實(shí)現(xiàn)了除夕夜系統(tǒng)
    2.搶紅包算法
    2.1二倍均值法
    剩余紅包金額為M,剩余人數(shù)為N,那么有如下公式:
    每次搶到的金額=隨機(jī)區(qū)間?(0,M/NX2)。
    2.2線段切割法
   線段切割法:我們可以把紅包總金額想象成一條很長(zhǎng)的線段,而每個(gè)人搶到的金額,則是這條主線段所拆分出的若干子線段。如下圖所示,100紅包分五個(gè)人,即需要四個(gè)隨機(jī)的“線段”:
    2.3.實(shí)現(xiàn)
關(guān)鍵詞

裂變營(yíng)銷(xiāo)

更新時(shí)間
皇冠會(huì)員
第3年
統(tǒng)一社會(huì)信用代碼
91410105MA44P35Q7Q
成立日期
2017年06月25日
法定代表人
韓先生
注冊(cè)資本
100

主營(yíng)產(chǎn)品

鄭州小程序定制開(kāi)發(fā),鄭州APP軟件開(kāi)發(fā),鄭州電商商城系統(tǒng)開(kāi)發(fā),鄭州行業(yè)應(yīng)用軟件開(kāi)發(fā)

經(jīng)營(yíng)范圍

計(jì)算機(jī)軟硬件的技術(shù)開(kāi)發(fā)、技術(shù)轉(zhuǎn)讓、技術(shù)服務(wù)、技術(shù)咨詢(xún);網(wǎng)絡(luò)技術(shù)服務(wù);網(wǎng)頁(yè)制作;設(shè)計(jì)、制作、代理、發(fā)布國(guó)內(nèi)廣告業(yè)務(wù);圖文設(shè)計(jì)制作;企業(yè)形象策劃;商務(wù)信息咨詢(xún);物聯(lián)網(wǎng)信息服務(wù);云平臺(tái)服務(wù);企業(yè)品牌策劃、推廣;銷(xiāo)售:電子產(chǎn)品、日用百貨。

公司簡(jiǎn)介

永諾網(wǎng)絡(luò)科技,始于2017年,鄭州永諾網(wǎng)絡(luò)科技有限公司2017成立,鄭州技術(shù)型小程序軟件開(kāi)發(fā)公司企業(yè)...9年來(lái),一直專(zhuān)注于中小企業(yè)小程序開(kāi)發(fā)與app軟件開(kāi)發(fā)為主,目前主要核心服務(wù)領(lǐng)域有:App定制開(kāi)發(fā),微信小程序開(kāi)發(fā),定制開(kāi)發(fā)等技術(shù)支持和服務(wù)。18名設(shè)計(jì)師和程序員技術(shù),與您一起尋求行業(yè)的突破點(diǎn),跨越,顛覆!秉著專(zhuān)注,擔(dān)當(dāng),責(zé)任的心態(tài),始終把客戶(hù)外包的項(xiàng)目當(dāng)成是我們自己的!合作,始于信任,源于用心。一個(gè)形象的作品,必然是理念、設(shè)計(jì)和技術(shù)...

查看公司詳情
聯(lián)系電話(huà):15515818101撥打郵箱[email protected]郵件
經(jīng)經(jīng)理韓先生
地址鄭州金水路未來(lái)路曼哈頓商業(yè)廣場(chǎng)-E區(qū)
我們其他產(chǎn)品
我們的新聞