DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on

[Conceito] - Round-Robin

Conteúdo original nessa thread do Twitter


Ei dev,

Fora do contexto do Batman você sabe o que é Robin? Na verdade, Round Robin ou round-robin?

Round Robin é um algoritmo de distribuição mais legal que o Batman.

Cola mais pra você arrepiar no próximo churrasco e mandar a resenha certa sobre o Robin.

cc @sseraphini

img


Round-robin tem tudo a ver com divisão igualitária e não é papo de política social, não.

Pode ser encontrado desde CPU scheduling, até message brokers, até Kafka, até load balancers, até DNS, até uma mamãe águia alimentando seus dois filhotinhos (essa última eu inventei).

img


Como sou o louco dos exemplos não poderia ser diferente aqui.

Imagine um load balancer pra uma API. Na verdade um cluster de APIs com 3 nós atrás desse load balancer.

img


Se o load balancer estiver configurado no modo round-robin, ele irá distribuir as requisições de forma circular e sem prioridade.

Ou seja:

  • 1ª req. / nó 1
  • 2ª req. / nó 2
  • 3ª req. / nó 3
  • 4ª req. / nó 1
  • 5ª req. / nó 2
  • 6ª req. / nó 3

...e assim por diante.


Middlewares de mensagens/streaming também funcionam assim por padrão.

Imagine um cenário com 2 consumidores conectados em uma mesma fila.

img


O natural é que as mensagens sejam distribuídas de forma justa entre os consumidores conectados à fila.

Ou seja:

  • 1ª msg. / consumidor 1
  • 2ª msg. / consumidor 2
  • 3ª msg. / consumidor 1
  • 4ª msg. / consumidor 2

... e assim por diante.


E ainda por cima, se um novo consumidor ou nó de API for adicionado ao cluster, esse novo elemento passará a receber também requisições ou mensagens.


Ah, mencionei sobre distribuição justa. Às vezes, você também encontrará o termo "fair distribution" sendo usado para round-robin.


Se o conceito ainda estiver meio confuso, assista ao episódio do Pica-Pau em que há aquela divisão desonesta de comida. É a mesma coisa, só que de forma honesta!

(Procure por "UM PRA VC UM PRA MIM, DOIS PRA VC DOIS PRA MIM" no YouTube.)

img


Esse algoritmo também pode ser usado em CPUs e até DNSs.

Por falar em DNS, o que você acha que aconteceria com as requisições para o site Mamãe Águia com a política de round-robin configurada como nessa imagem?

Fácil demais, né?

(Vai lá e abafa com o time de infra.)

img


Se você leu até aqui, dá um abraço apertado, vai! 🤗

Obrigado demais pela moral!

Discussion (1)

Collapse
fannyvieira profile image
Fanny

Parabéns pelo texto!