Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 12210|Odgovoriti: 0

Tehnična analiza izbire vmesne programske opreme za čakalno vrsto sporočil

[Kopiraj povezavo]
Objavljeno na 15. 12. 2016 10:52:40 | | | |
Programska oprema za posredovanje sporočil je vmesna programska oprema, sestavljena iz mehanizma prenosa sporočil oziroma načina čakalne vrste, ki uporablja učinkovit in zanesljiv mehanizem sporočanja za izmenjavo podatkov, neodvisno od platforme, ter integrira distribuirane sisteme, ki temeljijo na podatkovni komunikaciji. Trenutno je v industriji veliko MQ izdelkov, kot so RabbitMQ, ActiveMQ, ZeroMQ itd., ki so odlična programska oprema za sporočila, a katerega naj izberemo v projektu? Ta članek ocenjuje in primerja naslednje produkte čakalnih vrst sporočil: RabbitMQ, ZeroMQ, ActiveMQ, MSMQ, Redis in memcacheQ

Odmik od teme: Tukaj lahko najprej razmislimo o majhnem vprašanju: "Zakaj potrebujemo storitve čakalne vrste sporočil v spletnih aplikacijah?" ”
Na primer, veliko število zahtevkov za vstavljanje, posodabljanje in druge zahteve prispe v MySQL hkrati, kar neposredno vodi v nešteto zapor vrstic in tabel ter celo preveč zahtev na koncu, kar sproži preveč napak pri povezavah. Z uporabo vrst sporočil lahko zahteve obdelujemo asinhrono, kar razbremeni sistem.

RabbitMQ
Gre za odprtokodno vrsto sporočil, napisano v Erlangu, ki podpira številne protokole: AMQP, XMPP, SMTP, STOMP, kar jo naredi zelo zahtevno in bolj primerno za razvoj na ravni podjetij. Gre za vodilno implementacijo protokola AMQP, ki izvaja arhitekturo posrednika, kar pomeni, da se lahko sporočila pred pošiljanjem odjemalcu postavijo v vrsto na osrednjem vozlišču. Dobro podpira usmerjanje, uravnoteženje obremenitve ali ohranjanje podatkov. Ta funkcija naredi RabbitMQ enostaven za uporabo in nameščanje, primeren za številne scenarije, kot so usmerjanje, uravnoteženje obremenitve ali ohranitev sporočil, in ga je mogoče izvesti z le nekaj vrsticami kode v vrstah sporočil. Vendar pa je to manj razširljivo in počasnejše, saj osrednje vozlišče poveča zakasnitev in je po enkapsulaciji sporočila večje. Za konfiguracijo RabbitMQ morate na ciljni računalnik namestiti okolje Erlang.
Kliknite za ogled te slike v novem oknu

? MQ(ZeroMQ)
Znana je kot najhitrejši sistem za čakanje sporočil, zlasti za scenarije z visoko prepustnostjo po povpraševanju. Gre za zelo lahek sistem za sporočanje, razvit posebej za scenarije z visoko prepustnostjo in nizko zakasnitvijo, ki ga pogosto najdemo v aplikacijah v finančnem svetu. V primerjavi z RabbitMQ ZeroMQ podpira številne napredne scenarije sporočil, vendar morate v okviru ZeroMQ implementirati posamezne bloke (kot so vtičnice ali naprave itd.).

? MQ (ZeroMQ) lahko implementira napredne/kompleksne vrste, v katerih RabbitMQ ni dober, vendar morajo razvijalci sami kombinirati več tehničnih okvirov, kar predstavlja izziv za uspešno uporabo tega MQ. ZeroMQ ima edinstven model brez vmesne programske opreme, kjer ni treba nameščati in zaganjati strežnika sporočil ali vmesne programske opreme, ker bo vaša aplikacija igrala to vlogo storitve. Vse, kar morate storiti, je, da preprosto preverite knjižnico ZeroMQ, ki jo lahko namestite z NuGetom, in lahko brez težav pošiljate sporočila med aplikacijami. Vendar pa ZeroMQ zagotavlja le netrajne vrste, kar pomeni, da se podatki izgubijo v primeru izpada stroja. Med njimi Twitterjev Storm uporablja ZeroMQ za prenos podatkovnih tokov. ZeroMQ je zelo prilagodljiv, vendar se morate naučiti njegovega 80-stranskega priročnika (če pišete o distribuiranem sistemu, ga obvezno preberite).

ZeroMQ nima vmesne programske arhitekture in ne zahteva nobenih servisnih procesov in zagonov. Pravzaprav vaša aplikacijska končna točka opravlja to vlogo storitve. To zelo olajša namestitev, vendar je skrb, da nimate kam paziti, če gre kaj narobe. Kolikor vemo, ZeroMQ ponuja le netrajne vrste. Svoje lastne zmogljivosti za revizijo in obnovo podatkov lahko implementirate tam, kjer jih potrebujete.
Kliknite za ogled te slike v novem oknu

MSMQ
To je edina stvar v Microsoftovem izdelku, ki velja za dragoceno. Če bo MSMQ dokazal, da lahko opravi tovrstne naloge, se bodo odločili, da ga uporabijo. Bistvo je, da ta stvar ni zapletena, nič drugega kot sprejemanje in pošiljanje; Ima nekaj trdih omejitev, kot je največja velikost sporočila 4MB. Vendar pa lahko te težave reši z povezavo z nekaterimi programskimi programi, kot sta MassTransit ali NServiceBus.
Kliknite za ogled te slike v novem oknu

Jafka/Kafka
Kafka (ki razporeja sporočila med različnimi vozlišči) je distribuirani MQ sistem, ki ga je decembra 2010 razvil in odprtokodni s strani LinkedIna, zdaj pa je inkubacijski projekt Apache, visokozmogljivega medjezikovnega distribuiranega sistema za čakanje sporočil Publish/Subscribe, Jafka pa je inkubirana na Kafki, ki je nadgrajena različica Kafke. Ima naslednje značilnosti: hitro vztrajnost, ki lahko vztraja sporočila pod obremenitvijo sistema O(1); Visoka prepustnost, ki lahko doseže prepustnost 10W/s na običajnem strežniku; Popolnoma distribuirani sistemi, posrednik, proizvajalec in potrošnik vsi nativno podpirajo distribuirano in samodejno dosegajo kompleksno ravnovesje. Podpira vzporedno nalaganje Hadoop podatkov, kar je izvedljiva rešitev za loge in offline analitične sisteme, kot je Hadoop, vendar z omejitvami obdelave v realnem času. Kafka združuje spletno in nespletno obdelavo sporočil preko Hadoopovega mehanizma vzporednega nalaganja, kar je prav tako pomembno za sistem, preučevan na tem področju. Apache Kafka je zelo lahek sistem za sporočanje v primerjavi z ActiveMQ, poleg zelo dobre zmogljivosti pa je tudi porazdeljen sistem, ki dobro deluje.
Kliknite za ogled te slike v novem oknu

Apache ActiveMQ
ActiveMQ se nahaja nekje med obema (RabbitMQ in ZeroMQ), podobno kot ZemoMQ, in ga je mogoče uporabljati tako v proxy kot P2P načinu. Podobno kot RabbitMQ je enostavno implementirati napredne scenarije in zahteva nizko porabo.
ActiveMQ je znan kot hrbtenica sveta Jave. Ima dolgo zgodovino in je široko uporabljen. Je tudi večplatformska, saj omogoča naravno integracijsko dostopno točko za izdelke, ki niso na Microsoftovi platformi. Vendar pa je mogoče upoštevati le, če je prešel MSMQ. Za konfiguracijo ActiveMQ morate na ciljni računalnik namestiti Java okolje.
Kliknite za ogled te slike v novem oknu
Pomembno je poudariti, da je ActiveMQ-jev izdelek naslednje generacije Apollo, ki temelji na prototipu ActiveMQ in je hitrejše, zanesljivejše ter lažje vzdrževanje orodja za posredovanje sporočil. Apache imenuje Apollo najhitrejši in najbolj robusten STOMP (Streaming Text Orientated Message Protocol) strežnik.
Značilnosti Apolla so naslednje:
Podprta sta protokola Stomp 1.0 in Stomp 1.1
Teme in vrste
Brskalnik čakalnih vrst
Trajne naročnine s temo
Zrcalna čakalna vrsta
Zanesljivo sporočanje
Potek in izmenjava sporočil
Izbiralnik sporočil
JAAS potrjeno
Pooblastilo na podlagi ACL
Podpora SSL/TLS in validaciji certifikatov
REST Management API
Kliknite za ogled te slike v novem oknu

Redis
Gre za podatkovno bazo Key-Value NoSQL, ki se aktivno razvija in vzdržuje, čeprav gre za sistem za shranjevanje podatkovne baze Key-Value, vendar podpira funkcije MQ, zato jo je mogoče uporabljati kot lahko storitev za čakalno vrsto. Pri uvajanju in odhodu v čakalno vrsto RabbitMQ in Redis vsak milijonkrat, čas izvedbe pa se beleži vsakih 100.000-krat. Testni podatki so razdeljeni na štiri različne velikosti: 128 bajtov, 512 bajtov, 1K in 10K. Eksperimenti kažejo, da je ob pridružitvi ekipi zmogljivost Redisa višja kot pri RabbitMQ, kadar je primerjava podatkov majhna, in če velikost podatkov presega 10K, je Redis neznosno počasen. Ob odhodu iz ekipe je Redis pokazal zelo dobre rezultate ne glede na velikost podatkov, medtem ko je bil RabbitMQ precej nižji od Redisovega.

MemcacheQ
Trajna čakalna vrsta sporočil Memcacheq (na kratko MCQ) je lahka vrsta sporočil, MemcacheQ pa ima:
1 Preprost in enostaven za uporabo
2 Hitro procesiranje
3 Več vrst
4 Dobra uspešnost sočasnosti
5 Združljivo s protokolom Memcache. To pomeni, da preprosto namestite razširitev memcache, dodatni vtičniki niso potrebni.
6 Prav tako je priročen za uporabo v zend ogrodju.

Na koncu so ti izdelki:
1. Oba imata svoje odjemalske API-je ali podpirata več programskih jezikov;
2. Obstaja veliko dokumentacije;
3. Pozitivna podpora je bila zagotovljena.
4. ActiveMQ, RabbitMQ, MSMQ, Redis morajo vsi zagnati storitvene procese, ki jih je mogoče spremljati in konfigurirati, ostali pa so problematični
5. Vsi zagotavljajo razmeroma dobro zanesljivost (konsistentnost), razširljivost in uravnoteženje obremenitve ter seveda zmogljivost

Ne bom govoril neumnosti, spodaj je priložen niz rezultatov testov, prestreženih z interneta. Prikazano je število poslanih in prejetih sporočil na sekundo. Celoten proces je ustvaril skupno 1 milijon 1K sporočil. Test je bil izveden na samostojnem računalniku z Windows Vista.


Kot vidite, ZeroMQ ni nivo kot vse drugo. Njegova zmogljivost je presenetljivo visoka. Kljub temu ta izdelek ne zagotavlja trajnosti sporočil, ne more enostavno shranjevati in nadzorovati vmesnih procesov ter zahteva samorevizijo in obnovo podatkov, zato ni zadovoljiv glede enostavnosti uporabe in HA. Zaključek je jasen: če želite, da aplikacija pošilja sporočila čim hitreje, izberite ZeroMQ. Bolj dragoceno je, če vam ni preveč mar, da bi po naključju izgubili določena sporočila.

Bloger v tem članku upa (in ne upa prav veliko), da bo uporabljal Rabbit, Rabbitmq ima vgrajen sistem, ha, če oblikujete grozd, ni treba skrbeti za težave, kot je uravnoteženje obremenitve, in lahko nastavite zrcalo v vrsti. Ampak takšne stvari pomenijo, da bi moralo biti več testiranj, na koncu dobiš najljubšega, in vse, kar sem slišal in prebral o Rabbitu, mi daje občutek, da bi moral biti najboljša odločitev.





Prejšnji:C#/.NET bere izvorno kodo zgoščenih informacij torrent torrenta
Naslednji:Poizvedba o geslu za Wifi glavni ključ
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com