Amazon Simple Queue Service

Amazon Simple Queue Service (Amazon SQS) ir Amazon izstrādāts dalītas ziņojumu rindošanas pakalpojums, kas ļauj nodalīt un mērogot mikropakalpojumus, dalītās sistēmas un lietojumprogrammas bez servera. Tas ietilpst Amazon Web Services pakalpojumos.
Amazon SQS ieviesa 2004. gada beigās, lai nodrošinātu ļoti mērogojamu ziņojumu rindošanu, kas atrisina problēmas, kas rodas saistībā ar vispārējo ražotāja-patērētāja problēmu vai savienojamību starp ražotāju un patērētāju.
Amazon SQS var raksturot kā ziņapmaiņas pakalpojuma kommoditizāciju. Labi zināmi ziņapmaiņas pakalpojumu tehnoloģiju piemēri ir IBM WebSphere MQ un Microsoft Message Queuing. Atšķirībā no šīm tehnoloģijām, lietotājiem nav jāuztur savs serveris. Amazon piedāvā savu serveri un SQS pakalpojumu pārdod, maksu aprēķinot pēc lietošanas skaita.
SQS piedāvā divu veidu ziņojumu rindas. Standarta rindas piedāvā maksimālo caurlaidspēju, labākās slodzes pasūtīšanu un piegādi vismaz vienu reizi. SQS FIFO rindas nodrošina ziņojumu apstrādi precīzi vienu reizi un tādā pašā secībā, kādā tie nosūtīti.

API

Amazon nodrošina programmatūras izstrādātāja rīkkopas (SDK) vairākās programmēšanas valodās, tostarp Java, Ruby, Python, .NET, PHP un Javascript. 2014. gada decembrī tika izlaists Amazon SQS Java Message Service (JMS) 1.1 klients.

Autentifikācija

Amazon SQS nodrošina autentifikācijas procedūras, kas ļauj droši apstrādāt datus. Amazon izmanto savu Amazon Web Services (AWS) identifikāciju, kam nepieciešams, lai lietotājiem būtu AWS konts. Lai veiktu identifikāciju, AWS iespējotam kontam piešķir saistītu identifikatoru pāri, kas ir AWS piekļuves atslēgas. Pirmais identifikators ir publiskā 20 rakstzīmju piekļuves atslēga. Šī atslēga ir iekļauta AWS pakalpojuma pieprasījumā, lai identificētu lietotāju. Ja lietotājs neizmanto SOAP protokolu ar WS-Security, ciparparaksts tiek aprēķināts, izmantojot slepenās piekļuves atslēgu. Slepenās piekļuves atslēga ir 40 rakstzīmju privāts identifikators. AWS izmanto pakalpojuma pieprasījumā norādīto piekļuves atslēgas ID, lai meklētu konta slepenās piekļuves atslēgu. Pēc tam Amazon.com aprēķina ciparparakstu ar atslēgu. Ja tie sakrīt, lietotājs tiek uzskatīts par autentisku, ja ne, tad autentifikācija neizdodas un pieprasījums netiek apstrādāts.

Ziņojuma piegāde

Amazon SQS garantē piegādi vismaz vienu reizi. Ziņas tiek glabātas vairākos serveros, lai veiktu redundanci un nodrošinātu pieejamību. Ja ziņojums tiek piegādāts brīdī, kad serveris nav pieejams, tas var netikt noņemts no servera rindas un var tikt pārsūtīts atkārtoti. Kopš 2007. gada SQS negarantē, ka adresāts saņems ziņojumus sūtītāja nosūtītajā secībā. Ja ziņojumu secība ir svarīga, nepieciešams, lai lietojumprogramma ziņojumos ievieto secības informāciju, kas ļauj veikt pārkārtošanu pēc piegādes.
Ziņojumi var būt jebkāda veida, un tajos ietvertie dati nav ierobežoti. Ziņojuma pamatteksta garums sākotnēji bija ierobežots līdz 8 KB, bet vēlāk (2010. gada jūlijā) tika pacelts līdz 64 KB un pēc tam (2013. gada jūnijā) līdz 256 KB. Lielākiem ziņojumiem lietotājam ir dažas iespējas apiet šo ierobežojumu. Lielu ziņojumu var sadalīt vairākās daļās, kas tiek nosūtītas atsevišķi. Cita iespēja ir ziņojuma datus var saglabāt, izmantojot Amazon Simple Storage Service (Amazon S3) vai Amazon DynamoDB, SQS ziņojumā ievietojot tikai rādītāju uz pārsūtāmajiem datiem. Šim nolūkam Amazon ir padarījis pieejamu bibliotēku Extended Client Library.

Ziņojuma dzēšana

SQS automātiski nedzēš ziņojumus pēc nosūtīšanas. Kad ziņojums ir piegādāts, šai piegādei tiek ģenerēts saņemšanas turis, kas tiek nosūtīts adresātam. Šie saņemšanas turi netiek nosūtīti kopā ar ziņojumu, bet papildus. Lai SQS izdzēstu ziņojumu, adresātam ir jānorāda turis. Tā kā sistēma ir dalīta, ziņojumu var nosūtīt vairākkārt. Šajā gadījumā, lai izdzēstu ziņojumu, ir nepieciešams pēdējais saņemšanas turis.
Kad ziņojums ir piegādāts, tam ir redzamības noildze, lai neļautu citiem komponentiem to patērēt. Redzamības taimauta “pulkstenis” sākas, kad tiek nosūtīts ziņojums, un noklusējuma laiks ir 30 sekundes. Ja rindā šajā laikā nav norādīts, ka ziņojums ir jāizdzēš, ziņojums atkal kļūst redzams un būs pārgalvīgs.
Katrai rindai ir arī saglabāšanas parametrs, kura noklusējums ir 4 dienas. Visi ziņojumi, kas atrodas rindā ilgāk, tiks automātiski iztīrīti. Lietotājs var mainīt aizturi no 1 minūtes līdz 14 dienām. Ja saglabāšana tiek mainīta, kamēr ziņojumi jau ir rindā, jebkurš ziņojums, kas ir bijis rindā ilgāk par jauno saglabāšanu, tiks iztīrīts.