Randomizing Strings In A Microservices World
Tim Daneliuk wrote:
> I ran across a kind of fun problem today that I wanted to run past you
> Gentle Geniuses (tm):
> - Imagine an environment in which there may be multiple instances of a
> microservice written in Python.
> - Each of these services needs to produce a string of ten digits
> guaranteed to be unique
> on a per service instance basis AND to not collide for - oh, let's say -
> forever :)s
> Can anyone suggest a randomization method that might achieve this
> My first thought was to something like nanonseconds since the epoch plus
> unique about the service instance - like it's IP? (This is in a K8s
> cluster) - to see the randomization and essentially eliminate the string
> being repeated.
> Ideas welcome ..
> P.S. I do not want to resort to a number generation service that each
> instance asks
> for a new number. The network and service call overhead militates
> against this in my application.
Hand out a range of numbers when the service is started. Once that range is
used up the service can terminate itself.