尊龙d88官方网站

<wbr id="oi25s"><source id="oi25s"><option id="oi25s"></option></source></wbr>
      <big id="oi25s"></big>
      
      
    1. 定單付出勝利后,5分鐘后檢測下流環節是不是都正常,好比用戶購置會員后

      作者: 健隆 分類: 淄博網站制作資訊 發布時間: 2020-07-18 10:21

      一、配景

      先看看一下營業場景:

      1.會員過期前3天發送召回告訴

      2.定單付出勝利后,5分鐘后檢測下流環節是不是都正常,好比用戶購置會員后,各類會員狀況是不是都設置勝利

      3.若何按期搜檢處于退款狀況的定單是不是已退款勝利?

      4.完成告訴失敗,1,3,5,7分鐘反復告訴,直到對方答復?

      平日處理以上成績,最簡單直接的設施就是準時去掃表。

      掃表存在的成績是:

      1.掃表與數據庫長時候毗鄰,在數目量大的情形輕易泛起毗鄰異常中止,需求更多的異常處置懲罰,對法式健壯性請求高

      2.在數據量大的情形下延時較高,劃定內處置懲罰不完,影響營業,固然可以啟動多個歷程來處置懲罰,如許會帶來額定的保護本錢,不克不及從根本上處理。

      3.每一個營業都要保護一個自己的掃表邏輯。 當營業愈來愈多時,發明掃表部份的邏輯會反復開辟,然則異常雷同

      延時隊列能對上述需求能很好的處理

      二、調研

      調研了市場上一些開源的計劃,以下:

      1.有贊科技:只要道理,沒有開源代碼

      2.github個人的:https://github.com/ouqiang/delay-queue

      (1)基于redis完成,redis只能設置裝備擺設一個,假如redis掛了全部辦事不可用,可用性差點

      (2)花費端完成的是拉形式,接入本錢大,每一個項目都得去完成一遍接入代碼

      (3)在star利用的人數不多,放在臨盆情況,存在風險,加上對go說話不了解,出了成績難以保護

      3.SchedulerX-阿里開源的: 功用很壯大,然則運維龐雜,依靠組件多,不敷輕量

      4.RabbitMQ-延時義務: 自己沒有延時功用,需求借助一特征自己完成,并且公司沒有布置這個隊列,去零丁布置一個這個來做延時隊列本錢有點高,并且還需求專門的運維來保護,今朝團隊不支撐

      根基以上緣由籌算自己寫一個,平時利用php多,項目根基redis的zset構造作為存儲,用php說話完成 ,完成道理參考了有贊團隊:https://tech.youzan.com/queuing_delay/

      全部延遲隊列主要由4個部份

      JobPool用來寄存一切Job的元信息。

      DelayBucket是一組以時候為維度的有序隊列,用來寄存一切需求延遲的Job(這里只寄存Job Id)。

      Timer擔任及時掃描各個Bucket,并將delay時候大于等于以后時候的Job放入到對應的Ready Queue。

      ReadyQueue寄存處于Ready狀況的Job(這里只寄存JobId),以供花費法式花費。

      c882fbf5a572e029727a410b8903e5c.png

      新聞構造

      每一個Job必需包括一下幾個屬性:

      topic:Job類型??梢粤私獬稍敿毜臓I業稱號。

      id:Job的獨一標識。用來檢索和刪除指定的Job信息。

      delayTime:jod延遲履行的時候,13位時候戳

      ttr(time-to-run):Job履行超時時候。

      body:Job的內容,供花費者做詳細的營業處置懲罰,以json花樣存儲。

      對同一類的topic delaytime,ttr普通是固定,job可以在精簡一下屬性

      1.topic:Job類型??梢粤私獬稍敿毜臓I業稱號

      2.id:Job的獨一標識。用來檢索和刪除指定的Job信息。

      3.body:Job的內容,供花費者做詳細的營業處置懲罰,以json花樣存儲。

      delaytime,ttr在topicadmin后臺設置裝備擺設

      三、目的

      輕量級:有較少的php的拓展就可以直接運轉,不需求引入收集框架,好比swoole,workman之類的

      穩定性:采取master-work架構,master不做營業處置懲罰,只擔任治理子歷程,子歷程異常加入時主動拉起

      可用性:

      1.支撐多實例布置,每一個實例無狀況,一個實例掛掉不影響辦事

      2.支撐設置裝備擺設多個redis,一個redis掛了只影響部份新聞

      3.營業方接入輕易,在后臺只需填寫相干新聞類型和回調接口

      拓展性: 當花費歷程存在瓶頸時,可以設置裝備擺設加大花費歷程數,當寫入存在瓶頸時,可增加實例數寫入機能可線性進步

      及時性:答應存在一定的時候誤差。

      支撐新聞刪除:營業利用方,可以隨時刪除指定新聞。

      新聞傳輸可靠性:新聞進入到延遲隊列后,包管最少被花費一次。

      寫入機能:qps>1000+

       

      如果覺得我的文章對您有用,請隨意打賞。您的支持將鼓勵我繼續創作!

      尊龙d88bbin平台 D88尊龙移动客户端 尊龙d88开户登入 尊龙d88网址备用登 尊龙d88来就送38 尊龙d88注册登录 尊龙d88官网免费下载 D88尊龙电脑版 下载尊龙d88app d88尊龙手机登录免费下载 尊龙d88手机版在线登录 尊龙d88登录安卓版下载 尊龙d88旧版登陆 尊龙d88下载 d88尊龙网页版登录手机 尊龙d88手机版在线登录 d88尊龙压大小打不开 尊龙d88旧版登陆 尊龙d88登录安卓版下载 尊龙d88旧版登录网址下载 尊龙d88官网免费下载 尊龙d88官网免费下载 d88尊龙新版登录 尊龙d88手机网页登录 D88尊龙网址大全 尊龙d88旧版登陆 下载尊龙d88app d88尊龙登录下载 尊龙d88开户登入 尊龙d88旧版登录网址下载 尊龙d88旧版网址 尊龙d88旧版网址 尊龙d88官网免费下载 尊龙d88登录 尊龙d88登录 d88尊龙官网免费下载 尊龙d88来就送38 尊龙d88下载 尊龙d88旧版登录网址下载 D88尊龙网址大全 尊龙d88手机版在线登录 尊龙d88用现金娱乐 d88尊龙压大小打不开 尊龙d88注册登录 尊龙d88登录安卓版下载 d88尊龙官网免费下载 尊龙d88来就送38 D88尊龙移动客户端 d88尊龙手机登录免费下载 尊龙d88手机版下载网址
      D88尊龙手机版登录 D88尊龙电脑版 D88尊龙移动客户端 D88尊龙网址大全 d88尊龙压大小打不开 d88尊龙官网免费下载 d88尊龙官网登录免费下载 d88尊龙手机登录 d88尊龙手机登录免费下载 d88尊龙新版登录 d88尊龙登录下载 d88尊龙网址 d88尊龙网页版登录手机 下载尊龙d88app 尊龙d88app 尊龙d88bbin平台 尊龙d88下载 尊龙d88官方网站 尊龙d88官网免费下载 尊龙d88开户登入 尊龙d88手机版下载网址 尊龙d88手机版在线登录 尊龙d88手机网页登录 尊龙d88旧版登录网址下载 尊龙d88旧版登陆 尊龙d88旧版网址 尊龙d88来就送38 尊龙d88注册登录 尊龙d88游戏登录入口 尊龙d88用现金娱乐 尊龙d88登录 尊龙d88下载 灯塔市| 新疆| 娄烦县| 抚顺县| 青神县| 海兴县| 虞城县| 潼南县| 勐海县| 祥云县| 资源县| 龙山县| 鸡东县| 任丘市| 县级市| 瑞金市| 礼泉县| 义乌市| 琼海市| 大足县| 龙州县| 息烽县| 新邵县| 界首市| 大余县| 达州市| 侯马市| 渭南市| 闸北区| 临高县| 昔阳县| 长垣县| 桂林市| 蒲江县| 微山县| 资溪县| 德化县| 晋中市| 剑阁县| 昌吉市| 衡水市|