Ana Sayfa

Rails 8: Redis'e Veda, SolidQueue ile Veritabanı Gücü

1 dk okuma

Rails 8, popüler Ruby tabanlı web uygulama framework'ünün en son sürümü, standart teknoloji yığınından Redis'i çıkardı. Artık iş kuyruklarını yönetmek, önbelleğe almak ve gerçek zamanlı mesajlar göndermek için Redis'e ihtiyaç duyulmuyor. Bunun yerine, Rails'in yeni özellikleri olan SolidQueue (iş kuyrukları için), SolidCache (önbellekleme için) ve SolidCable (ActionCable mesajları için) tamamen uygulamanın mevcut ilişkisel veritabanı servisi üzerinde çalışıyor. Bu değişiklik, çoğu Rails uygulaması için Redis'in tamamen terk edilebileceği anlamına geliyor.

Redis'in on yıldan fazla bir süredir Rails iş kuyruklama ve önbellekleme için tercih edilen altyapı olduğu göz önüne alındığında bu kulağa şaşırtıcı gelebilir. Ancak, Redis'in kurulum ve sürekli bakım maliyetleri, sunucu yazılımını dağıtma, sürümleme, yamalama ve izleme, kalıcılık stratejilerini yapılandırma, bellek limitlerini ve tahliye politikalarını belirleme gibi ek karmaşıklıklar getiriyor. Ayrıca, ağ bağlantısı, kimlik doğrulama, yüksek erişilebilirliğe sahip bir Redis kümesi kurma ve Sidekiq süreçlerini yönetme gibi sürekli yükler de mevcut. Bir sorun çıktığında, farklı semantiklere sahip iki ayrı veri deposu olan Redis ve RDBMS arasında hata ayıklama yapmak ve iki ayrı yedekleme stratejisini yönetmek zorunda kalmak, geliştirme sürecini daha da karmaşıklaştırıyor.

SolidQueue, Redis'in yerini PostgreSQL ile nasıl alıyor? Redis, atomik, uçucu ve çok hızlı bir bellek gibi davranan bir veri deposudur. SolidQueue ise PostgreSQL 9.5'in FOR UPDATE SKIP LOCKED özelliğini kullanarak bu boşluğu dolduruyor. Bu SQL özelliği, bir satır için özel bir kilit oluşturur ve kilitli olan diğer satırları atlar. Bu mekanizma, veritabanı destekli iş kuyruklarının büyük ölçekte bile uygulanabilir olmasını sağlıyor. Böylece Rails, tek bir veri deposu etrafında daha basit ve entegre bir altyapı sunarak web geliştirmeyi basitleştirmeyi hedefliyor.

İçgörü

Rails 8, Redis bağımlılığını ortadan kaldırarak iş kuyrukları ve önbellekleme için ilişkisel veritabanlarını kullanarak uygulama altyapısını basitleştiriyor.

Kaynak