English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Laravel SQS Extended
Uvod
Laravel SQS Extended je Laravel vozač redova koji je osmišljen da zaobiđe ograničenja veličine tereta AWS SQS. Ovaj vozač reda će automatski serijalizovati velike terete na disk (tipično S3) i zatim ih dezirijalizovati u vreme izvođenja. Ovaj paket je inspiraciju pronašao u https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-s3-messages.html.
Migracija sa Simple SQS Extended Klijenta
- Uklonite paket
simplesoftwareio/simple-sqs-extended-clientiz vašeg projekta. - Instalirajte paket
defectivecode/laravel-sqs-extended.
Stara konfiguracija je kompatibilna sa novim paketom. Jedina promena je naziv paketa.
Instalacija
- Prvo kreirajte bucket koji će sadržavati sve vaše velike SQS terete.
Toplo preporučujemo da koristite privatni bucket kada skladištite SQS terete. Tereti mogu sadržati osetljive informacije i nikada ne bi trebali biti javno deljeni.
-
Pokrenite
composer require defectivecode/laravel-sqs-extendedza instalaciju vozača reda. -
Zatim, dodajte sledeće podrazumevane postavke reda u vaš
queue.phpfajl.
Korisnici Laravel Vapora moraju postaviti ime konekcije na
sqs.sqskonekcija se traži unutar Vapor Core i ova biblioteka neće raditi kako se očekuje ako koristite drugo ime konekcije.
/*|--------------------------------------------------------------------------| SQS Disk Queue Configuration|--------------------------------------------------------------------------|| Ovde možete konfigurisati SQS disk vozač reda. Delimo sve iste| opcije konfiguracije kao i ugrađeni Laravel SQS vozač reda. Jedina dodatna| opcija je `disk_options` koja je objašnjena ispod.|| always_store: Određuje da li svi tereti treba da se skladište na disku bez obzira na ograničenje veličine reda.| cleanup: Određuje da li se fajlovi tereta treba ukloniti sa diska nakon obrade posla. Ostavljanje| fajlova može biti korisno da se ponovo upotrebi red poslova kasnije iz razloga debagovanja.| disk: Disk na koji se spremaju SQS tereti. Ovaj disk treba da bude konfiguran u vašem Laravel filesystems.php konfiguracionom fajlu.| max_size: Opcionalno. Postavlja prag za offload na fiksan broj bajtova. Kada se izostavi, prag se čita iz| samog reda. Vidi "Prag veličine tereta" ispod.| prefix Prefiks (folder) za skladištenje tereta. Ovo je korisno ako delite disk sa drugim SQS redovima.| Korišćenje prefiksa omogućava komandi queue:clear da uništi fajlove odvojeno od drugih sqs-disk redova| koji dele isti disk.|*/'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', ],],
- Pokrenite vaše redove i uživajte bez brige o SQS-ovom ograničenju tereta 🥳
Prag veličine tereta
AWS je povisio maksimalni SQS teret sa 256 KiB na 1 MiB u avgustu 2025. godine, ali MaximumMessageSize je atribut po redu — redovi kreirani pre te promene zadržavaju staru vrednost od 262144 bajta dok je ne povisite. Umesto da pretpostavljamo bilo koju granicu, ovaj paket čita atribut iz reda i offload-uje samo ono što se zaista ne može uklopiti.
Prag se reševa u sledećem redosledu, i prva podudarnost pobedi. Teret se skladišti na disku kada je njegova dužina veća ili jednaka rešenom pragu.
| Uslov | Prag | Čita atribut reda |
|---|---|---|
always_store je true |
Svaki teret se skladišti | Ne |
max_size je postavljen |
Konfigurisana vrednost | Ne |
Red izveštava 262144 (pre 2025. podrazumevano) |
250000 | Da |
Red izveštava 1048576 (povišeno na maksimum) |
1036432 | Da |
| Atribut ne može biti pročitan | 250000 | Pokušano jednom |
Zadržana margina od 12144 bajta pokriva troškove po poruci, i je veličine tako da red ostavljen na podrazumevanju od 262144 bajta rešava do praga od 250000 bajta korišćenog u ranijim verzijama ovog paketa. Nadogradnja ne menja ponašanje dok ne povisite sopstveno ograničenje reda.
Dozvole
Čitanje atributa zahteva sqs:GetQueueAttributes. Rezultat se kešira u memoriji po redu, tako da ovo košta jedan poziv po redu tokom trajanja procesa umesto jednog poziva po poslu.
Ako atribut ne može biti pročitan — uska IAM politika ili SQS emulator koji to ne implementira — vozač se vraća na prag od 250000 bajta i nastavlja sa slanjem. Postavite max_size da potpuno izbegnete pretragu ako ne želite da dodelite dozvolu.
Povećanje limita reda
aws sqs set-queue-attributes \ --queue-url https://sqs.us-east-1.amazonaws.com/your-account-id/your-queue \ --attributes MaximumMessageSize=1048576
Napomena: SQS obračunava korišćenje u delovima od 64 KB, tako da se jedna poruka od 1 MiB naplaćuje kao 16 zahteva. Skladištenje velikih tereta na disku je često i dalje jeftiniji put.
Smjernice za podršku
Hvala što ste odabrali naš paket otvorenog koda! Molimo vas da odvojite trenutak da pregledate ove smjernice za podršku. Pomoći će vam da izvučete maksimum iz našeg projekta.
Podrška vođena zajednicom
Naš projekat otvorenog koda pokreće naša sjajna zajednica. Ako imate pitanja ili trebate pomoć, StackOverflow i ostali online resursi su najbolji izbor.
Greške i prioritizacija funkcionalnosti
Stvarnost upravljanja projektom otvorenog koda je da ne možemo odmah riješiti svaku prijavljenu grešku ili zahtjev za funkcionalnošću. Prioritizujemo probleme u sledećem redu:
1. Greške koje utiču na naše plaćene proizvode
Greške koje utiču na naše plaćene proizvode uvijek će biti naš najveći prioritet. U nekim slučajevima, možda ćemo se fokusirati samo na greške koje direktno utiču na nas.
2. Pull zahtjevi zajednice
Ako ste identificirali grešku i imate rešenje, molimo pošaljite pull zahtjev. Nakon problema koji utiču na naše proizvode, sledeći najveći prioritet daju se ovim ispravkama koje pokreće zajednica. Kada se pregledaju i odobre, spojit ćemo vaše rešenje i priznati vaš doprinos.
3. Finansijska podrška
Za probleme izvan pomenutih kategorija, možete se odlučiti da finansijski podržite njihovo rješavanje. Svaki otvoreni problem je povezan s narudžbenicom na kojoj možete financijski doprinijeti. Prioritizujemo ove probleme na osnovu iznosa finansiranja koji je pružen.
Doprinosi zajednice
Otvoreni kod napreduje kada je njegova zajednica aktivna. Čak i ako ne ispravljate greške, razmislite o doprinosu kroz poboljšanja koda, ažuriranja dokumentacije, tutorijale ili pomažući drugima u zajedničkim kanalima. Veoma ohrabrujemo sve, kao zajednicu, da pomognu u podršci radu otvorenog koda.
Ponovo naglašavamo, DefectiveCode će prioritetizovati greške na osnovu njihovog uticaja na naše plaćene proizvode, pull zahtjeve zajednice i finansijsku podršku primljenu za probleme.
Licenca - MIT Licenca
Autorska prava © Defective Code, LLC. Sva prava zadržana
Ovim se dozvoljava, bez naplate, svakoj osobi koja dobije kopiju ovog softvera i pripadajućeg dokumentacionog materijala (u daljem tekstu "Softver"), da se bavi Softverom bez ograničenja, uključujući, ali ne ograničavajući se na prava da koristi, kopira, modifikuje, spaja, objavljuje, distribuira, sublicencira i/ili prodaje kopije Softvera, te da omogući osobama kojima je Softver dostavljen da učine tako, pod sledećim uslovima:
Gore navedena autorska prava i ova dozvola moraju biti uključeni u sve kopije ili bitne delove Softvera.
SOFTVER SE DOSTAVLJA "KAKAV JESTE", BEZ GARANCIJE BILO KAKVE VRSTE, IZRIČITE ILI IMPLICIRANE, UKLJUČUJUĆI, ALI NE OGRANIČAVAJUĆI SE NA GARANCIJE PRODAJE, PRIKLADNOSTI ZA ODREĐENU NAMENU I NEPOŠTOVANJE PRAVA. U NIKAKVOM SLUČAJU AUTORI ILI NOSIOCI AUTORSKIH PRAVA NEĆE BITI ODGOVORNI ZA BILO KAKVE POTRAŽIVANJA, ŠTETE ILI DRUGE OBAVEZE, BEZ OBZIRA NA TO DA LI JE U PITANJU TUŽBA ZBOG UGOVORA, DELIKTA ILI DRUGIH RAZLOGA, PROIZAŠLE IZ, VAN ILI U VEZI SA SOFTVEROM ILI KORIŠĆENJEM ILI DRUGIM TRANSAKCIJAMA U VEZI SA SOFTVEROM.