令牌桶是按照固定的速率往桶里添加令牌,当请求来时,只有令牌桶中的令牌足够,才能正确处理请求,否则会变相拒绝该请求,而漏桶则不同,漏桶是按照常量固定速率流出请求,但是流入的请求速率是随机的,所以当流入的请求数达到了漏桶的容量时,新流入的请求就会被拒绝。
令牌桶可以平均请求流入速率,因为流入的请求都是要获取令牌才能被正常处理,所以平均流入速率会被限制,如果桶中令牌足够,也是能够撑起一定程度并发量的。漏桶算法的话则是限制了请求流出速率,因为流出速率是一个固定的常量值,那么不管流入速率是多少,流出速率的大小都会限制着流入的请求被处理的速度,从而起到了平滑突发流入速率的作用。