Articles

RabbitMQ, Wat is dat?

RabbitMQ is een onderdeel van Message Broker dat Advance Message Queue Protocol (AMQP) implementeerde, dat uw toepassing helpt om met elkaar te communiceren, wanneer u uw toepassingsschaal uitbreidt.

https://www.cloudamqp.com/img/blog/exchanges-topic-fanout-direct.png

Voordat ik over RabbitMQ, ik wil ervoor zorgen dat u allemaal weet over 2 manieren om te communiceren tussen de micro-diensten. Ze zijn Point to Point (P2P)/synchrone communicatie, en Publish-Subscribe (Pub-Sub) / asynchrone communicatie. Wat zijn de verschillen tussen die twee?
P2P zoals het synchrone communicatie wordt genoemd, weten we dat een app direct zal communiceren met andere app, met behulp van HTTP-protocol, dat is de app vereist onmiddellijke reactie direct van de server.
Pub-Sub omdat het asynchrone communicatie wordt genoemd, weten we dat het geen onmiddellijke reactie van de server vereist, en het bericht dat wordt verzonden zal worden geplaatst in een berichtwachtrij (of bekend als Gebeurteniswachtrij in Enterprise Messaging System).

RabbitMQ wordt ook wel middleware build genoemd met Erlang, omdat het zowel micro-services als een app kan zijn. RabbitMQ ondersteuning meerdere protocollen, hier is het protocol dat RabbitMQ ondersteuning:
– AMQP
– HTTP
– STOMP
– MQTT

Exchange is een algoritme dat bepaalt welke wachtrij het bericht
zal opslaan(bericht ophalen van producent, in de wachtrij van consument opnemen). Elke consument krijgt zijn eigen wachtrij gebaseerd op de logica die u gebruikt, er zijn 4 soorten logica die u kunt gebruiken in Exchange:
– Direct Exchange: zal direct naar de wachtrij gebaseerd op een message routing key
– Fanout Exchange: zal publiceren naar alle wachtrijen die dezelfde routing key hebben
– Topic Exchange: Zal publiceren naar alle wachtrij met dezelfde routeringssleutel en routeringspatroon gespecificeerd in de binding
– Headers Exchange: Header betekent header bij het verzenden van een bestand http, zoals wanneer u een afbeelding verzendt de header is ‘image/*’

Waarom moeten we RabbitMQ gebruiken?

ontkoppelen: wat betekent door ontkoppelen is de kerncomponenten van de toepassing scheiden. Dit is wat elke toepassing die micro-diensten te implementeren wilde. Omdat hun toepassing onderhoudbaar zal zijn en het verbeteren van de kwaliteit van Single Responsibility Principe.

flexibiliteit: Omdat de applicatie is ontkoppeld, dus de applicatie zal flexibel genoeg zijn om te worden ontwikkeld naar de volgende fase. Maar niet alleen dat flexibel, want als u gebruik maakt RabbitMQ, je in staat om 2 verschillende apps/dienst die geschreven door verschillende app zal zijn, zal deze applicatie met elkaar praten door de hulp van een “vertaler” die moeder.

een ander voordeel van het gebruik van RabbitMQ:
– zeer beschikbare wachtrij
– Multi-Protocol
– veel Client
– Clustering
– Beheer UI
– Tracing (met behulp van dashboard kan ondersteuning traceren)
– Plugin systeem (uitbreiden Core broker functionaliteit op verschillende manieren)

RabbitMQ vs Kafka

Er is een andere message broker die ik ken, het is Kafka. Wat zijn de verschillen tussen RabbitMQ en Kafka? Voor zover ik weet, zijn dit de fundamentele verschillen tussen RabbitMQ en Kafka.:

Kafka- > Dumb Broker, Smart Consumer to read its buffer
RabbitMQ – > Smart Broker, Dumb Consumer to read its buffer

misschien zal het detail worden geleverd op andere post…

wat nu?

proberen te leren wat is Producent, Consument, bericht, uitwisseling algoritme, verschillen tussen RabbitMQ en Kafka.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.