雙十一秒殺架構模型設計
秒殺系統(tǒng)相信很多人見過,比如京東或者淘寶的秒殺,小米手機的秒殺,那么秒殺系統(tǒng)的后臺是如何實現(xiàn)的呢?我們如何設計一個秒殺系統(tǒng)呢?對于秒殺系統(tǒng)應該考慮哪些問題?如何設計出健壯的秒殺系統(tǒng)?本文我們就來探討一下這個問題。





public?class?TestRateLimiter?{
????public?static?void?main(String[]?args)?{
????????//1秒產(chǎn)生1個令牌
????????final?RateLimiter?rateLimiter?=?RateLimiter.create(1);
????????for?(int?i?=?0;?i?10;?i++)?{
????????????//該方法會阻塞線程,直到令牌桶中能取到令牌為止才繼續(xù)向下執(zhí)行。
????????????double?waitTime=?rateLimiter.acquire();
????????????System.out.println("任務執(zhí)行"?+?i?+?"等待時間"?+?waitTime);
????????}
????????System.out.println("執(zhí)行結束");
????}
}

public?class?TestRateLimiter2?{
????public?static?void?main(String[]?args)?{
????????final?RateLimiter?rateLimiter?=?RateLimiter.create(1);
????????for?(int?i?=?0;?i?10;?i++)?{
????????????long?timeOut?=?(long)?0.5;
????????????boolean?isValid?=?rateLimiter.tryAcquire(timeOut,?TimeUnit.SECONDS);
????????????System.out.println("任務"?+?i?+?"執(zhí)行是否有效:"?+?isValid);
????????????if?(!isValid)?{
????????????????continue;
????????????}
????????????System.out.println("任務"?+?i?+?"在執(zhí)行");
????????}
????????System.out.println("結束");
????}
}



