擅长:python、mysql、java
<p>您可以缓存数据库中的可用计数,并在发出(注册开始)、确认(注册完成)或吊销(超过5分钟)令牌时更新该计数。但是,如果您需要这种性能,那么SQL数据库并不是这样的。在</p>
<p>您可以使用<a href="http://en.wikipedia.org/wiki/Heap_%28data_structure%29" rel="nofollow">heap</a>(基于最快到期)实现一个相当简单的令牌代理。每次请求令牌时,它都会检查最快到期的令牌并查看它是否已过期。若是这样,就要从所分派的人那里收回,交给新人。如果没有,告诉他们稍后再试。在</p>
<p>当注册完成后,您必须从堆中移除该令牌(这是一个相对昂贵的操作,但您只执行了200次)。因此,堆中的标记始终等于空闲+挂起插槽的数量。在</p>
<p>即使在一般的硬件上,每秒处理数千个最快过期的请求(例如,<a href="http://en.wikipedia.org/wiki/Fibonacci_heap" rel="nofollow">Fibonacci heap</a>)也是微不足道的。在</p>
<p>我没有检查,但我怀疑其他人已经解决了大部分,如果不是所有的问题,你可以下载说代币经纪人。在</p>