Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 12210|Atbildi: 0

Ziņojumu rindas starpprogrammatūras tehniskās atlases analīze

[Kopēt saiti]
Publicēts 15.12.2016 10:52:40 | | | |
Ziņojumu starpprogrammatūra ir starpprogrammatūras tehnoloģija, kas sastāv no ziņojumu pārraides mehānisma vai ziņojumu rindas režīma, kas izmanto efektīvu un uzticamu ziņojumapmaiņas mehānismu neatkarīgai datu apmaiņai no platformas un integrē izkliedētas sistēmas, kuru pamatā ir datu pārraide. Šobrīd nozarē ir daudz MQ produktu, piemēram, RabbitMQ, ActiveMQ, ZeroMQ utt., Kas ir lieliska ziņojumu starpprogrammatūra, bet kuru mums vajadzētu izvēlēties projektā? Šajā dokumentā tiek novērtēti un salīdzināti šādi ziņojumu rindas produkti: RabbitMQ, ZeroMQ, ActiveMQ, MSMQ, Redis un memcacheQ

Novirze: Šeit mēs vispirms varam domāt par nelielu jautājumu: "Kāpēc mums ir nepieciešami ziņojumu rindas pakalpojumi tīmekļa lietojumprogrammās?" ”
Piemēram, MySQL vienlaicīgi nonāk liels skaits ievietošanas, atjaunināšanas un citu pieprasījumu, kas tieši noved pie neskaitāmām rindu bloķēšanas un tabulas bloķēšanas un pat pārāk daudz pieprasījumu beigās, tādējādi izraisot pārāk daudz savienojumu kļūdu. Izmantojot ziņojumu rindas, mēs varam apstrādāt pieprasījumus asinhroni, mazinot sistēmas slodzi.

Trušu MQ
Tā ir atvērtā koda ziņojumu rinda, kas rakstīta Erlangā, kas atbalsta daudzus protokolus: AMQP, XMPP, SMTP, STOMP, kas padara to ļoti smagu un piemērotāku uzņēmuma līmeņa attīstībai. Tā ir vadošā AMQP protokola ieviešana, kas ievieš brokera arhitektūru, kas nozīmē, ka ziņojumus var ievietot rindā centrālajā mezglā pirms nosūtīšanas klientam. Ir labs maršrutēšanas, slodzes balansēšanas vai datu noturības atbalsts. Šī funkcija padara RabbitMQ viegli lietojamu un izvietojamu, piemērotu daudziem scenārijiem, piemēram, maršrutēšanai, slodzes līdzsvarošanai vai ziņojumu noturībai, un to var izdarīt tikai ar dažām koda rindiņām ar ziņojumu rindām. Tomēr tas padara to mazāk mērogojamu un lēnāku, jo centrālais mezgls palielina latentumu un ir lielāks pēc ziņojuma iekapsulēšanas. Lai konfigurētu RabbitMQ, mērķa mašīnā ir jāinstalē Erlang vide.
Noklikšķiniet, lai skatītu šo attēlu jaunā logā

? MQ (ZeroMQ)
Tā ir pazīstama kā ātrākā ziņojumu rindas sistēma, īpaši augstas caurlaidības pieprasījuma scenārijiem. Tā ir ļoti viegla ziņojumapmaiņas sistēma, kas īpaši izstrādāta augstas caurlaidspējas / zema latentuma scenārijiem, un to bieži var atrast lietojumprogrammās finanšu pasaulē. Salīdzinot ar RabbitMQ, ZeroMQ atbalsta daudzus uzlabotus ziņojumu scenārijus, taču ZeroMQ sistēmā ir jāievieš atsevišķi bloki (piemēram, ligzdas vai ierīces utt.).

? MQ (ZeroMQ) var ieviest uzlabotas/sarežģītas rindas, kurās RabbitMQ nav labs, bet izstrādātājiem pašiem ir jāapvieno vairāki tehniskie ietvari, un tehniskā sarežģītība ir izaicinājums veiksmīgai šī MQ piemērošanai. ZeroMQ ir unikāls modelis, kas nav starpprogrammatūra, kurā jums nav nepieciešams instalēt un palaist ziņojumu serveri vai starpprogrammatūru, jo jūsu lietojumprogramma spēlēs šo pakalpojuma lomu. Viss, kas jums jādara, ir vienkārši atsaukties uz ZeroMQ bibliotēku, kuru var instalēt, izmantojot NuGet, un jūs varat laimīgi nosūtīt ziņojumus starp lietojumprogrammām. Tomēr ZeroMQ nodrošina tikai nepastāvīgas rindas, kas nozīmē, ka, ja mašīna nedarbojas, dati tiks zaudēti. Starp tiem Twitter Storm izmanto ZeroMQ kā datu plūsmu pārraidi. ZeroMQ ir ļoti elastīgs, taču jums ir jāapgūst tā 80 lappušu rokasgrāmata (ja rakstāt par izplatītu sistēmu, noteikti izlasiet to).

ZeroMQ nav starpprogrammatūras arhitektūras, un tam nav nepieciešami nekādi servisa procesi un palaišana. Faktiski jūsu lietojumprogrammas galapunktam ir šī pakalpojuma loma. Tas padara to ļoti vienkāršu izvietošanu, taču bažas ir par to, ka jums nav kur skatīties, ja ar to kaut kas noiet greizi. Cik mēs zinām, ZeroMQ piedāvā tikai nepastāvīgas rindas. Ja nepieciešams, varat ieviest savas audita un datu atkopšanas iespējas.
Noklikšķiniet, lai skatītu šo attēlu jaunā logā

MSMQ
Šī ir vienīgā lieta Microsoft produktā, kas tiek uzskatīta par vērtīgu. Ja MSMQ var pierādīt, ka tas var tikt galā ar šāda veida uzdevumu, viņi izvēlēsies to izmantot. Lieta ir tāda, ka šī lieta nav sarežģīta, nekas cits kā saņemšana un nosūtīšana; Tam ir daži stingri ierobežojumi, piemēram, maksimālais ziņojuma lielums 4 MB. Tomēr tas var atrisināt šīs problēmas, izveidojot savienojumu ar kādu programmatūru, piemēram, MassTransit vai NServiceBus.
Noklikšķiniet, lai skatītu šo attēlu jaunā logā

Jafka/Kafka
Kafka (kas izplata ziņojumus dažādos mezglos) ir izplatīta MQ sistēma, ko LinkedIn izstrādāja un atvēra 2010. gada decembrī, un tagad ir Apache inkubācijas projekts, augstas veiktspējas starpvalodu izplatīta ziņojumu rindu rindas sistēma, un Jafka ir inkubēta virs Kafka, kas ir uzlabota Kafka versija. Tam ir šādas īpašības: ātra noturība, kas var saglabāt ziņojumus zem sistēmas pieskaitāmajām O(1); Augsta caurlaidspēja, kas parastā serverī var sasniegt caurlaides ātrumu 10W/s; Pilnībā sadalīta sistēma, brokeris, ražotājs un patērētājs visi vietējie atbalsta sadalītu un automātiski sasniedz sarežģītu līdzsvaru. Atbalsta Hadoop datu paralēlo ielādi, kas ir dzīvotspējīgs risinājums žurnālu datiem un bezsaistes analīzes sistēmām, piemēram, Hadoop, bet ar reāllaika apstrādes ierobežojumiem. Kafka apvieno tiešsaistes un bezsaistes ziņojumu apstrādi, izmantojot Hadoop paralēlās ielādes mehānismu, kas ir svarīgs arī šajā tēmā pētītajai sistēmai. Apache Kafka ir ļoti viegla ziņojumapmaiņas sistēma salīdzinājumā ar ActiveMQ, un papildus ļoti labai veiktspējai tā ir arī izplatīta sistēma, kas darbojas labi.
Noklikšķiniet, lai skatītu šo attēlu jaunā logā

Apache ActiveMQ
ActiveMQ atrodas kaut kur starp abiem (RabbitMQ un ZeroMQ), līdzīgi kā ZemoMQ, un to var izvietot gan starpniekservera, gan P2P režīmos. Līdzīgi kā RabbitMQ, ir viegli īstenot uzlabotus scenārijus un prasa zemu patēriņu.
ActiveMQ ir pazīstams kā Java pasaules mugurkauls. Tam ir sena vēsture un tas tiek plaši izmantots. Tas ir arī starpplatformas, nodrošinot dabisku integrācijas piekļuves punktu produktiem, kas nav Microsoft platformā. Tomēr to ir iespējams apsvērt tikai tad, ja tas ir pagājis MSMQ. Lai konfigurētu ActiveMQ, mērķa datorā ir jāinstalē Java vide.
Noklikšķiniet, lai skatītu šo attēlu jaunā logā
Ir svarīgi atzīmēt, ka ActiveMQ nākamās paaudzes produkts ir Apollo, kura pamatā ir ActiveMQ prototips un ir ātrāks, uzticamāks un vieglāk uzturams ziņojumu starpnieka rīks. Apache sauc Apollo par ātrāko un spēcīgāko STOMP (Streaming Text Oriented Message Protocol) serveri.
Apollo iezīmes ir šādas:
Tiek atbalstīti Stomp 1.0 un Stomp 1.1 protokoli
Tēmas un rindas
Rindas pārlūks
Dizaina pastāvīgie abonementi
Spoguļa rinda
Uzticama ziņojumapmaiņa
Ziņojuma derīguma termiņš un apmaiņa
Ziņojumu atlasītājs
JAAS verificēts
ACL autorizācija
Atbalstiet SSL/TLS un sertifikātu validāciju
REST pārvaldības API
Noklikšķiniet, lai skatītu šo attēlu jaunā logā

Redis
Tā ir Key-Value NoSQL datu bāze, kas tiek aktīvi izstrādāta un uzturēta, lai gan tā ir Key-Value datu bāzes glabāšanas sistēma, bet tā atbalsta MQ funkcijas, tāpēc to var izmantot kā vieglu rindas pakalpojumu. RabbitMQ un Redis pievienošanas un izslēgšanas operācijām katrs 1 miljons reižu, un izpildes laiks tiek reģistrēts ik pēc 100 000 reižu. Testa dati ir sadalīti četros dažādos izmēros: 128baiti, 512baiti, 1K un 10K. Eksperimenti rāda, ka, pievienojoties komandai, Redis veiktspēja ir augstāka nekā RabbitMQ, ja datu salīdzinājums ir mazs, un, ja datu lielums pārsniedz 10K, Redis ir nepanesami lēns. Izejot no komandas, Redis parādīja ļoti labu sniegumu neatkarīgi no datu lieluma, savukārt RabbitMQ sniegums bija daudz zemāks nekā Redis.

MemcacheQ
Pastāvīgā ziņojumu rinda Memcacheq (saīsināti MCQ) ir viegla ziņojumu rinda, MemcacheQ funkcijas:
1 Vienkārši un viegli lietojams
2 Ātra apstrāde
3 Vairākas rindas
4 Laba vienlaicīguma veiktspēja
5 Savietojams ar Memcache protokolu. Tas nozīmē, ka vienkārši instalējiet memcache paplašinājumu, nav nepieciešami papildu spraudņi.
6 Tas ir ērti lietojams arī zend ietvarā.

Galu galā šie produkti:
1. Abiem ir savi klienta API vai atbalsta vairākas programmēšanas valodas;
2. Ir daudz dokumentācijas;
3. Tika sniegts pozitīvs atbalsts.
4. ActiveMQ, RabbitMQ, MSMQ, Redis visiem ir jāsāk pakalpojumu procesi, kurus var uzraudzīt un konfigurēt, un pārējie ir problemātiski
5. Tie visi nodrošina salīdzinoši labu uzticamību (konsekvenci), mērogojamību un slodzes līdzsvarošanu un, protams, veiktspēju

Es šeit nerunāšu muļķības, zemāk ir pievienots testa rezultātu kopums, kas pārtverts no interneta. Tiek parādīts sekundē nosūtīto un saņemto ziņojumu skaits. Viss process ģenerēja kopumā 1 miljonu 1K ziņojumu. Pārbaude tika veikta atsevišķā Windows Vista datorā.


Kā redzat, ZeroMQ nav tāds līmenis kā nekas cits. Tās veiktspēja ir pārsteidzoši augsta. Neskatoties uz to, šis produkts nenodrošina ziņojumu noturību, nevar viegli uzglabāt un uzraudzīt starpposma procesus, un tam ir nepieciešama pašrevīzija un datu atgūšana, tāpēc tas nav apmierinošs lietošanas ērtuma un HA ziņā. Secinājums ir skaidrs: ja vēlaties, lai lietotne pēc iespējas ātrāk nosūtītu ziņojumus, izvēlieties ZeroMQ. Tas ir vērtīgāk, ja jums pārāk nerūp nejauši zaudēt noteiktus ziņojumus.

Emuāru autors šajā rakstā cer (un necer ļoti daudz) izmantot Rabbit, Rabbitmq ir iebūvēts ha, ja veidojat klasteri, nav jāuztraucas par tādiem jautājumiem kā slodzes līdzsvarošana, un jūs varat iestatīt rindas spoguli. Bet šāda veida lieta ir tāda, ka vajadzētu būt vairāk testēšanas, un jūs galu galā iegūstat mīļāko, un visas lietas, ko esmu dzirdējis un lasījis par Rabbit, liek man justies, ka tai vajadzētu būt labākajai izvēlei.





Iepriekšējo:c#/.net nolasa torrent torrent jaucējinformācijas avota kodu
Nākamo:wifi galvenās atslēgas interfeisa wifi paroles vaicājums
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com