Randomizing Strings In A Microservices World

Peter Otten __peter__ at web.de
Tue Dec 10 09:47:49 EST 2019


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
> given
>   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
> efficiently?
> 
> My first thought was to something like nanonseconds since the epoch plus
> something
> 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.



More information about the Python-list mailing list