Lowkiq. Pourquoi l'avons-nous fait?

Lowkiq est le nouveau serveur pour le traitement rationalisé des tâches en arrière-plan pour ruby ​​et redis. Il a été créé chez BIA-Technologies, une société développant des solutions logistiques.



Dans cet article, je parlerai des problèmes de traitement des travaux d'arrière-plan que nous avons rencontrés et de la façon de les résoudre.


ElasticSearch . 2 : A B. , , . , A . , , .


, . . ( ):


  • 1
  • 2
  • 2
  • 1

Sidekiq . redis
, , .


. redis, , . , , . , .


, "" . -. , , — .


Kafka. Kafka , .


. Lowkiq.


, A . . redis.


. , .


redis. :


  • score
  • perform_in

:


  • , score
  • perform_in
  • retry_count

score perform_in — unix timestamp.


, , .


, payloads . , .


, , , perform_in. perform_in, Lowkiq , - .


Lowkiq a hérité du partitionnement de l'indexeur, mais a obtenu un système plus flexible pour distribuer les fragments entre les threads. Désormais, chaque thread peut traiter plusieurs fragments, ce qui vous permet d'ajouter de nouvelles files d'attente sans augmenter le nombre de threads.


Lowkiq, comme l'indexeur, garantit qu'aucun autre gestionnaire ne peut traiter une tâche avec le même identifiant en parallèle.


Plusieurs de nos projets utilisent Lowkiq en production tout au long de l'année. Cependant, nous utilisons toujours Sidekiq et d'autres systèmes de mise en file d'attente dans des cas normaux. Si vous rencontrez les mêmes problèmes que nous, essayez Lowkiq .

Source: https://habr.com/ru/post/undefined/


All Articles