12306 日點擊量達到1577.8億赊堪,在剛上線的時候面殖,買火車票太卡。他們做了很多的改進哭廉。有哪些呢脊僚? 咱不是開發(fā)人員,也沒法直接接觸遵绰,只能從網上搜羅來學習一下辽幌。
高負載高并發(fā)解決
1 異步交易排隊。 查詢是否有票是一個耗時任務椿访,需要大量計算,如果http請求一直等待計算結束成玫,則會阻塞web服務,導致web無法響應用戶梁剔。 那么建立一個交易隊列,將交易請求加入到交易隊列中荣病,直接返回給用戶提交成功的相應,隨后隔段時間查詢一次執(zhí)行結果即可異步購票个盆。
2 Pivotal GemFile 一個分布式的內存數(shù)據(jù)庫。
https://pivotal.io/pivotal-gemfire
特點
2.1 穩(wěn)定高效颊亮,基于內存
2.2 靈活的cache部署策略
2.3 分布式處理
2.4 高可用性和容錯性 ,存在多個基于內存的熱備份终惑。
2.5 數(shù)據(jù)可以全內存,也可以使用LRU策略房以一部分
2.6 并行查詢
例子: https://www.programcreek.com/java-api-examples/index.php?api=org.springframework.data.gemfire.GemfireTemplate
3 使用了阿里云的基于需求的伸縮性的云平臺