1. 程式人生 > >搶購器 搶拍器 秒殺器 秒殺軟體 搶購軟體 設計思路(未實現)

搶購器 搶拍器 秒殺器 秒殺軟體 搶購軟體 設計思路(未實現)

為什麼寫這個?

最近想買個小米手機,結果沒搶到,感覺這個搶購是不是有問題,網上一搜,發現有搶購器之類的東西,就分析一下

一、自動搶購需求分析:問題域

 1.1 背景:當前網站經常出現秒殺、限時搶購的活動。
     舉例子:電子商務、購物網站類、小米手機搶購
     搶購者往往話費了大量的時間資源在搶購網站中,結果往往卻不盡如人意,很多搶不到。浪費了時間,卻沒有收穫。
     假如能夠有一個軟體能夠自動的按網站搶購要求登入網站、進行搶購,並將搶購的結果通知給使用者是不是更好呢?
 1.2 一般搶購流程:
     搶購網站使用者註冊(省略:一般要繫結郵箱,需要先自動註冊一個郵箱,然後自動啟用功能)
     使用者填寫登入資訊(使用者名稱、密碼、驗證碼資訊)
     進入到搶購頁面(若干個頁面跳轉)
     根據搶購需求,自動填寫搶購資訊:如選中被搶購產品、選中型號、填寫搶購的一些資訊,如搶購人、搶購時間、搶購送貨地址
     搶購成功下一步,搶購失敗間隔一定時間繼續上面一個操作,
     搶購成功,將搶購成功結果資訊通知搶購人(郵件、簡訊、聲訊、電話... ...)
     進入下一步,線上支付,填寫好自動支付資訊,自動支付成功(通知搶購人自動支付成功)
 1.3 支援多人搶購流程:
     [1] 搶購系統能夠模擬一個搶購使用者 搶購一個商品
     [2] 搶購系統能夠模擬一個搶購使用者 搶購多個商品
     [3] 搶購系統能夠模擬併發多個搶購使用者 搶購 多個相同商品
     [4] 搶購系統能夠模擬併發多個搶購使用者 搶購 多個不同商品
 1.4 聯合搶拍器:
     1.提前60分鐘輸入驗證碼
     2.三種搶拍模式:定時、隨機、孤品搶拍模式,其中手動模式可以連續監控寶貝動態長達60分鐘且不耗費CPU。
     3.修改價格上架搶拍功能,在商城常見的搶拍模式,一般搶拍器無法勝任。
     4.自動支付,比引擎的自動支付更合理,哪件需要自動支付可以單獨設定。
     5.開一個軟體可以同時搶拍多件寶貝。
     6.自動更新,讓使用者更省力。
     7.支援顏色、尺碼、VIP、匿名、留言等功能。
     8.相互協助搶拍,增加成功率。
     9.即將增加功能:自動探測店主是否更換了尺碼顏色等資訊,防止這類花招造成搶拍失敗。
1.5 “秒殺”,是網路賣家釋出一些超低價格的商品,讓所有買家在同一時間通過網路進行搶購的一種促銷方式。由於商品價效比很高,往往活動一開始就被搶購一空,所需時間甚至以秒計算。
  也正是這種僧多粥少的狀況,一種能夠高頻率點選頁面的微型軟體——秒殺器應運而生。淘寶網此前舉行的“一元秒殺”活動,網友就認為部分人使用搶拍器等軟體作弊,破壞了活動的公平性。為此,淘寶網進行了緊急處理,全面禁售此類惡意軟體。但事實僅僅是禁止,但淘寶暫時沒有辦法完全遮蔽這種程式。
  1 伺服器壓力:在秒殺活動開始的前5分鐘內,訪問流量會放大到3-5倍,甚至10倍以上,平時設計的壓力容量,在這裡根本發揮不了作用,如資料儲存不了,服務不響應。比如商場的Nike專櫃搞活動,所有鞋1元銷售,20:00開始,服務員只有3位,大家蜂擁而上,大多數人壓根就看不到鞋。
  2 搶拍器:很多人說,我點下去就沒有啦,一點不奇怪,搶拍器在活動開始的前2-5分鐘啟動,每秒鐘可以想淘寶發幾十次請求,所有商品一上架,秒殺器在0.1秒鐘不到就知道上架啦,接下來馬上執行下單操作,應該在0.05秒就可以完成,所以搶拍器基本在0.15秒鐘就可以將商品拍下。普通人使用瀏覽器(瀏覽器載入一個頁面就需要2-3秒鐘),根本做不到,搶拍器是基於http協議做的,完全可以做到,目前最好用的仍然是安百網的聯合搶拍器。
  3 關於驗證碼問題:絕大多數站點都很難解決,其實驗證碼可以通過提前訪問而獲取到的。
  秒殺活動,本意是好的,但是普通人你不使用秒殺器你基本不會買到商品的。不少站點說封殺搶拍器,但是知道HTTP的人都知道,伺服器端不會知道是人還是搶拍器在做這個事情,對付低階的搶拍器是可以的,但是高階點的搶拍器是沒有辦法的,就比如說安百網聯合搶拍器。不少人在發牢騷,其實很多使用搶拍器的人在偷笑。當然如果這些活動不會惠及到普通人,讓少部分人得益,重在參與,樂在其中。

二、自動搶購解決方案:人機互動領域:用程式模擬人機互動過程 設計域
   思路一:找現成的:搶購器 搶拍器 秒殺器 秒殺軟體 搶購軟體
           http://goolexyz.blog.sohu.com/
   思路二:runloader或錄屏軟體、效能測試軟體、人機測試軟體等。
   思路三:研發解決思路:
      2.1 將搶購人資訊寫入到搶購系統的資料庫User表中的資訊包括:使用者名稱、密碼、搶購的產品名稱型號、郵箱、電話、郵寄地址、搶購開始時間和搶購結束時間、搶購頻率、搶購最大次數、搶購數量、是否子線支付等。
      2.2 根據搶購人,批量啟動搶購使用者登入搶購網站
          關鍵技術:驗證碼識別技術:驗證碼自動識別技術 http://www.skycn.com/soft_intro.php?id=55424
      2.3 網站內跳轉、設定值、http請求相關 抓包分析
      2.4 搶購動作:http post操作
          每一個頁面提交都是一個http請求,可以通過抓包工具,抓到請求的協議和引數,返回的協議和引數,
          用httpclient之類的工具模擬傳送請求即可
          如模擬登陸、模擬填寫搶購訂單、等等
          尤其注意:sessionId,每次向伺服器傳送請求時,一定要帶上上次將返回的sessionId,保證session驗證能夠通過
      2.5 搶購成功 -->  發簡訊、郵件、聲訊通知搶購者
      2.6 計費功能:搶購成功一個收取一定費用
      2.7 配置自動線上支付,可以線上支付
   
三、自動搶購實施解決:實現域、實施域
      3.1整理出http互動協議:httpclient
         獲取驗證碼協議:請求、響應
         登陸協議:      請求、響應
         搶購訂單:      請求、響應
         支付協議:      請求、響應
      3.2資料庫設計:MySQL
         使用者表:使用者名稱、密碼、搶購的產品名稱型號、郵箱、電話、郵寄地址、搶購開始時間和搶購結束時間、搶購頻率、搶購最大次數、搶購數量、是否子線支付,使用者併發搶購執行緒數,搶購次數,搶購狀態、搶購結果等。
      3.3UI原型:html/jsp/php/python
         錄入使用者資訊介面
         啟動搶購流程登陸獲取認證碼介面
         搶購主介面:搶購使用者任務進度情況介面:包括一些資訊:使用者、開始搶購時間、使用者當前執行的操作,返回的結果... ...
         增加搶購、停止搶購、暫停搶購、刪除搶購
         統計報表:多少使用者搶購,搶購成功的數量、失敗的數量
      3.4 技術架構:
         分層架構:UI(html/jsp) + spring + spring jdbc/ibatic/hibernate + mysql + OS(Linux/Windows)
         後臺多執行緒:concurrent包、spring job、spring batch、timers等
         應用伺服器:tomcat jvm

四、自動搶購驗證總結:測試、驗證域
    蘋果搶購、小米搶購、火車票搶購、淘寶搶購、京東搶購、蘇寧、國美、....測試驗證
    http://bbs.xiaomi.cn/thread-6480236-1-1.html
    http://www.xiaomi.com/index.php