Re: [請益] 請問寬宏售票為何常當機?
: 1. 信用卡付款機制掛了!
: 因為人太多交易又太久,假設一筆交易,金流交易銀行至少三個斡旋,要2秒,
: 100人瞬間進來,第100人至少等200秒,然後第7個人到100人都以為「當機」了
: ps:2秒看似很久,但是事實上會更久。
我記得這種API都是平行處理REQUEST
應該不會有這種狀況才對
即使是1000人進來應該也是也是只有2秒
不過我也沒親自寫過跟銀行串接的部分
有沒有寫過的人可以講一下這怎麼處理的?
還是銀行API真的有鎖每個帳號在同一時間只能有一人進入付款程序?
: 2. 訂位機制很難在網頁呈現,這個位置是不是已經被別人訂走了,
: 因為user猶豫的瞬間,假設一秒鐘,已經更新很多次,有7個人定位,有2個人退位。
: 然後user可能重複操作,一次開多個視窗,哭哭XD
: Socket 即時我同意~
: 但是顧慮幾件事情
: 1. 每秒同一座位,有n百個人要搶耶~
: 2. 搶位的機制超難搞的,寫在DB裡適當嗎?還是用Memory比較快?這也是問題...
: 3. 一人多視窗
: 4. 資料量是 百萬個「對象」 乘以 萬個「座位」
: 等於
: 1. 同1ms裡,有三個人搶位,甲贏了,丙乙搶輸了,這件事情要通知百萬個「對象」
: 2. 這些百萬個「對象」,要等100ms,Server才會主動通知Client,
: 為什麼要100ms,等一下說明...
: 3. Server要每秒中通知百萬個「對象」,一萬個座位的即時狀況,
: 4. Server好累,每秒通知已經超累了
: 5. 就算每秒通知,還是不夠即時。
: 6. Server 還要防止Dos 以及外掛作弊
: 7. 一台Server夠嗎? 分散如何?搶位的機制如何分散?
: 分散以後,每台Server還要同步每台Server...........哭哭
寬宏那邊是怎麼處理的我不清楚,我沒去搶票,也沒看過畫面
雖然可以做的到把所有位置放在網頁上給人選,並即時顯示動態
不過一般不會這樣
如果是管理頁面要顯示所有座位也就算了
但「把所有的座位列在畫面上給買票者選」這種設計本身就是一個問題
比較好的處理方式應該是:
1. 選區,然後電腦自動從該區選位置
2. 選區,然後電腦從該區挑出幾個空位來給使用者選,被挑的位置先鎖定
等選完後再把沒被選中的位置解除鎖定
如果很堅持要把一堆位置列在螢幕上人選的話
也可以這樣作:
3.選區,每區的大小大概幾十個至一百個位置
然後,每個區用一台獨立的伺服器去負責
進入該區的人只能看到/選該區的位置
所以,不會遇到那種需要每秒通知數百萬的對像的狀況
除非有人腦包堅持要把所有位置列出來給大家選,並叫程式設計師這樣做
另外別對伺服器有太大的信任
網站這種東西平時不會多大的流量,但一有狀況,流量就會「爆衝」
很顯然寬宏沒考慮到這一點
我私底下跟其他寫程式的朋友聊天時
有聽過幾次「這是台灣之恥」之類的言論
雖然有的人講話沒這麼毒,但講的意思都差不多是這樣
==========================
離題講一下別的東西
對付這種大流量的狀況
有個最基本的手法就是「切」
拿MMORPG來講
一個遊戲會切成好幾個伺服器、伺服器中的地圖又被切成好幾個區塊
甚至還出現副本之類的東西
那就都是為了把玩家分散到不同電腦上去作處理
這樣就是為了避免原PO講的,同步來同步去的問題
我也不是什麼大師
只是我聽過的,關於程式軟體的故事比較多一點罷了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.219.211
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1420534265.A.FE1.html
※ 編輯: LaPass (118.163.219.211), 01/06/2015 16:51:52
→
01/06 17:58, , 1F
01/06 17:58, 1F
→
01/06 18:04, , 2F
01/06 18:04, 2F
推
01/06 18:22, , 3F
01/06 18:22, 3F
推
01/06 18:52, , 4F
01/06 18:52, 4F
→
01/06 20:34, , 5F
01/06 20:34, 5F
→
01/07 00:05, , 6F
01/07 00:05, 6F
推
01/07 00:15, , 7F
01/07 00:15, 7F
推
01/07 00:50, , 8F
01/07 00:50, 8F
→
01/08 22:47, , 9F
01/08 22:47, 9F
討論串 (同標題文章)