You have to send all the traffic from one client to one server then right? Seems not without heavy drawbacks.
Otherwise you can easily get them to hit their limit super early with bad luck.
Otherwise you can easily get them to hit their limit super early with bad luck.
Each server contains a map of tokens per per client filling at a fixed interval.
That interval is calculated by taking the total global token refresh rate and dividing it by the number of servers.
The end result is exactly the same but, now you are stateless and have eliminated the bottleneck of a central token bucket.
Edit: And yes, round robin is the most commonly used load distribution technique, and works very well assuming each request has a roughly equivalent unit of work cost.