Lowkiq. Warum haben wir das gemacht?

Lowkiq ist der neue Server für die optimierte Verarbeitung von Hintergrundaufgaben für Ruby und Redis. Es wurde bei BIA-Technologies entwickelt, einem Unternehmen, das Logistiklösungen entwickelt.



In diesem Artikel werde ich über die Probleme bei der Verarbeitung von Hintergrundjobs sprechen, auf die wir gestoßen sind, und wie man sie löst.


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 erbte Sharding vom Indexer, erhielt jedoch ein flexibleres System zum Verteilen von Shards zwischen Threads. Jetzt kann jeder Thread mehrere Shards verarbeiten, sodass Sie neue Warteschlangen hinzufügen können, ohne die Anzahl der Threads zu erhöhen.


Lowkiq stellt wie der Indexer sicher, dass kein anderer Handler eine Aufgabe mit derselben Kennung parallel verarbeiten kann.


Einige unserer Projekte verwenden Lowkiq das ganze Jahr über in der Produktion. Im Normalfall verwenden wir jedoch immer noch Sidekiq und andere Warteschlangensysteme. Wenn Sie die gleichen Probleme wie wir haben, versuchen Sie es mit Lowkiq .

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


All Articles