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 (programmēšanas valoda)|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.

## Ārējās saites
* Amazon Simple Queue Service