English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Laravel SQS Genişletilmiş
Giriş
Laravel SQS Genişletilmiş, AWS SQS yük boyut sınırlarını aşmak için tasarlanmış bir Laravel kuyruk sürücüsüdür. Bu kuyruk sürücüsü, büyük yükleri otomatik olarak bir diske (genellikle S3) serileştirir ve sonra çalışma zamanında serileştirilmiş verileri tekrar işler. Bu paket, https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-s3-messages.html adresinden ilham almıştır.
Basit SQS Genişletilmiş İstemciden Geçiş
- Projeden
simplesoftwareio/simple-sqs-extended-clientpaketini kaldırın. defectivecode/laravel-sqs-extendedpaketini kurun.
Eski yapılandırma, yeni paket ile geriye dönük uyumludur. Tek değişiklik paket adıdır.
Kurulum
- Öncelikle, tüm büyük SQS yüklerinizi tutacak bir kova oluşturun.
SQS yüklerini depolarken özel bir kova kullanmanızı şiddetle tavsiye ederiz. Yükler hassas bilgiler içerebilir ve asla kamuya paylaşılmamalıdır.
-
Kuyruk sürücüsünü kurmak için
composer require defectivecode/laravel-sqs-extendedkomutunu çalıştırın. -
Ardından,
queue.phpdosyanıza şu varsayılan kuyruk ayarlarını ekleyin.
Laravel Vapor kullanıcıları bağlantı adını
sqsolarak ayarlamalıdır.sqsbağlantısı, Vapor Core içinde aranır ve farklı bir bağlantı adı kullanıyorsanız bu kütüphane beklendiği gibi çalışmayacaktır.
/*|--------------------------------------------------------------------------| SQS Disk Kuyruk Yapılandırması|--------------------------------------------------------------------------|| Burada SQS disk kuyruk sürücüsünü yapılandırabilirsiniz. Bu, yerleşik Laravel SQS kuyruk sürücüsündeki tüm| yapılandırma seçeneklerini paylaşır. Tek eklenen seçenek `disk_options` olup, aşağıda açıklanmıştır.|| always_store: Tüm yüklerin kuyruk boyut limiti göz önünde bulundurulmadan bir diskte depolanıp depolanmayacağını belirler.| cleanup: İş işlendiğinde yük dosyalarının diskten kaldırılıp kaldırılmayacağını belirler. Dosyaların arka planda| bırakılması, hata ayıklama nedenleriyle daha sonra kuyruk işlerini tekrar oynamak için yararlı olabilir.| disk: SQS yüklerinin kaydedileceği disk. Bu disk Laravel dosyalarınızda bulunan filesystems.php yapılandırma dosyasında| yapılandırılmalıdır.| max_size: Opsiyonel. Aşırı yükleme eşiğini sabit bir bayt sayısına sabitler. Atlandığında, eşik| kuyruktan okunur. Aşağıda "Yük boyutu eşiği" kısmına bakın.| prefix Yüklerin saklanacağı ön ek (klasör). Başka SQS kuyruklarıyla diski paylaşıyorsanız yararlıdır.| Bir ön ek kullanmak, queue:clear komutunun dosyaları diğer sqs-disk destekli kuyruklardan| ayrı olarak yok etmesine izin verir.|*/'sqs' => [ 'driver' => 'sqs-disk', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), 'queue' => env('SQS_QUEUE', 'default'), 'suffix' => env('SQS_SUFFIX'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 'after_commit' => false, 'disk_options' => [ 'always_store' => false, 'cleanup' => false, 'disk' => env('SQS_DISK'), 'prefix' => 'bucket-prefix', ],],
- Kuyruklarınızı başlatın ve SQS'nin yük limitinden endişe etmeden kazanç sağlamaya başlayın 🥳
Yük Boyutu Eşiği
AWS, maksimum SQS yükünü Ağustos 2025'te 256 KiB'den 1 MiB'ye yükseltti, ancak MaximumMessageSize bir kuyruk özelliğidir - o değişiklikten önce oluşturulan kuyruklar, eski 262144 bayt değerini korur. Herhangi bir sınıra varsayımlarda bulunmak yerine, bu paket özelliği kuyruktan okur ve gerçekten sığmayacak olanı yalnızca yükler.
Eşik, aşağıdaki sırayla çözülür ve ilk eşleşme kazanır. Bir yük, uzunluğu belirlenen eşikten büyük veya eşit olduğunda diske kaydedilir.
| Koşul | Eşik | Kuyruk özelliğini okur |
|---|---|---|
always_store true ise |
Her yük kaydedilir | Hayır |
max_size ayarlanmışsa |
Belirtilen değerdir | Hayır |
Kuyruk 262144 (2025 öncesi varsayılan) bildiriyorsa |
250000 | Evet |
Kuyruk 1048576 (maksimuma yükseltilmiş) bildiriyorsa |
1036432 | Evet |
| Özellik okunamıyorsa | 250000 | Bir kez denendi |
Rezerve edilen 12144 baytlık alan, mesaj başına ek yükü kapsar ve bir kuyruk, 262144 bayt varsayılanında bırakıldığında, bu paketin önceki sürümleri tarafından kullanılan 250000 baytlık eşiğe yanıt verir. Yükseltme, kuyruk kendi limitini artırmadıkça davranışı değiştirmez.
İzinler
Özelliği okumak için sqs:GetQueueAttributes gereklidir. Sonuç, her kuyruk için bellekte önbelleğe alınır, bu nedenle bu, işlem ömrü boyunca her kuyruk için bir çağrı maliyetinde olur; iş başına bir çağrı değildir.
Eğer özellik okunamazsa - dar bir IAM politikası veya bunu uygulamayan bir SQS emülatörü - sürücü 250000 baytlık eşik değeri ile geri döner ve işlemeye devam eder. İzni vermek istemiyorsanız max_size ayarlayarak aramayı tamamen atlayabilirsiniz.
Kuyruğun Limitini Yükseltme
aws sqs set-queue-attributes \ --queue-url https://sqs.us-east-1.amazonaws.com/your-account-id/your-queue \ --attributes MaximumMessageSize=1048576
SQS'nin kullanımını 64 KB parçalar halinde ölçtüğünü unutmayın, bu nedenle tek bir 1 MiB mesaj 16 istek olarak faturalandırılır. Büyük yükleri bir diskte depolamak genellikle daha ucuz bir yol olmaya devam eder.
Destek Kılavuzları
Açık kaynak paketimizi seçtiğiniz için teşekkürler! Lütfen bu destek kılavuzlarına bir göz atmak için biraz zaman ayırın. Bu kılavuzlar, projemizden en iyi şekilde yararlanmanıza yardımcı olacaktır.
Topluluk Tarafından Destek
Açık kaynak projemiz, harika topluluğumuz tarafından destekleniyor. Sorularınız varsa veya yardıma ihtiyacınız varsa, StackOverflow ve diğer çevrimiçi kaynaklar en iyi seçeneklerinizdir.
Hatalar ve Özellik Önceliklendirmesi
Açık kaynak projesini yönetmenin gerçeği, bildirilmiş olan her hata veya özellik talebini hemen ele alamayacağımızdır. Sorunları aşağıdaki sırayla önceliklendiriyoruz:
1. Ücretli Ürünlerimizi Etkileyen Hatalar
Ücretli ürünlerimizi etkileyen hatalar her zaman en yüksek önceliğimiz olacaktır. Bazı durumlarda, yalnızca bizim doğrudan etkilendiğimiz hataları ele alabiliriz.
2. Topluluk Çekme Talepleri
Bir hata tespit ettiyseniz ve bir çözümünüz varsa, lütfen bir çekme talebi gönderin. Ürünlerimizi etkileyen sorunlardan sonra, bu topluluk odaklı düzeltmelere en yüksek önceliği veriyoruz. İncelendikten ve onaylandıktan sonra, çözümünüzü birleştirecek ve katkınızı takdir edeceğiz.
3. Finansal Destek
Belirtilen kategorilerin dışındaki sorunlar için, çözümünü finanse etmeyi tercih edebilirsiniz. Her açık sorun, maddi katkıda bulunabileceğiniz bir sipariş formuna bağlıdır. Bu sorunları sağlanan finansman miktarına göre önceliklendiriyoruz.
Topluluk Katkıları
Açık kaynak, topluluğu aktif olduğunda gelişir. Hataları düzeltmiyor olsanız bile, kod iyileştirmeleri, belgeleri güncellemeler, öğreticiler aracılığıyla veya topluluk kanallarında başkalarına yardımcı olarak katkıda bulunmayı düşünün. Herkesi, bir topluluk olarak, açık kaynak çalışmalarını desteklemeye teşvik ediyoruz.
Tekrar belirtmek gerekirse, DefectiveCode, hataları nasıl etkilediklerine göre önceliklendirecektir; bu, ücretli ürünlerimize etkisi, topluluk çekme talepleri ve sorunlar için alınan finansal desteği içermektedir.
Lisans - MIT Lisansı
Telif Hakkı © Defective Code, LLC. Tüm hakları saklıdır
Bu yazılım ve ilgili belge dosyalarının (bundan böyle "Yazılım" olarak anılacaktır) bir kopyasını edinen herhangi bir kişiye, Yazılım'da kısıtlama olmaksızın işlem yapma izni verilmiştir; bu izin, Yazılım'ı kullanma, kopyalama, değiştirme, birleştirme, yayımlama, dağıtma, alt lisans verme ve/veya Yazılım'ın kopyalarını satma haklarını da içermektedir ve Yazılım'ın sağlandığı kişilerin bunu yapmasına izin verilmektedir; ancak, aşağıdaki koşullara tabi olacaktır:
Yukarıdaki telif hakkı bildirimi ve bu izin bildirimi, Yazılım'ın tüm kopyalarında veya önemli kısımlarında yer almalıdır.
YAZILIM "OLDUĞU GİBİ" SAĞLANMAKTADIR; HERHANGİ BİR TÜRDE, AÇIK YA DA ZIMNİ, SATILABİLİRLİK, BELİRLİ BİR AMACA UYGUNLUK VEYA HUKUKİ İHLAL GARANTİSİ DE DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEZ. YAZARLAR VEYA TELİF HAKKI SAHİPLERİ, YAZILIM’DAN veya YAZILIM'IN KULLANIMI veya DİĞER İŞLEMLERİNDEN KAYNAKLANAN HERHANGİ BİR TALEP, ZARAR VEYA DİĞER YÜKÜMDÜRLÜKLERDEN SORUMLU TUTULAMAZ; İSTER SÖZLEŞME TASARISI, SORUMLULUK, YA DA BAŞKA BİR ŞEKİLDE OLSUN.