Hello World: eenvoudige queue
Maak uw eerste RabbitMQ-producer en -consumer om berichten via een eenvoudige queue te verzenden en ontvangen. Begrijp het 'Hello World' van message brokering.
Hello World: eenvoudige queue is een gratis RabbitMQ-berichten en asynchrone systemen-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject RabbitMQ-berichten en asynchrone systemen. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus RabbitMQ-berichten en asynchrone systemen bevat in totaal 4 lessen.
Je eerste berichtenwachtrij!
Welkom bij je eerste praktijkles met RabbitMQ! We maken een eenvoudig voorbeeld met 'Hello World', de basisstap om berichtenwachtrijen te leren begrijpen.
In deze les leer je de absolute basis: een bericht naar een wachtrij sturen en het ontvangen.
Het kerntrio: P, C, Q
Elk eenvoudig systeem met een berichtenwachtrij heeft drie hoofdonderdelen:
- Producent: De toepassing die berichten verstuurt.
- Wachtrij: Een buffer waarin berichten worden opgeslagen. Zie het als een brievenbus.
- Consument: De toepassing die berichten uit de wachtrij ontvangt en verwerkt.
In ons voorbeeld met 'Hello World' stuurt een producent 'Hello World!' naar een wachtrij, waarna een consument het oppikt.
De basisstroom van berichten
Het proces is eenvoudig:
- De producent maakt verbinding met RabbitMQ.
- Hij stuurt een bericht naar een benoemde wachtrij.
- De consument maakt ook verbinding met RabbitMQ.
- Hij luistert naar dezelfde benoemde wachtrij.
- Wanneer er een bericht binnenkomt, ontvangt en verwerkt de consument het.
Zo worden de verzender en ontvanger ontkoppeld en kunnen ze onafhankelijk werken.
Verbinding maken met RabbitMQ
Voordat onze toepassingen berichten kunnen versturen of ontvangen, moeten ze verbinding maken met de RabbitMQ-server. We gebruiken een ConnectionFactory om deze verbinding tot stand te brengen.
Een Connection stelt een TCP-verbinding met de broker voor. Vanuit deze verbinding maken we een Channel, waarop de meeste API-bewerkingen worden uitgevoerd.
Een wachtrij declareren
Zowel de producent als de consument moet het eens zijn over de te gebruiken wachtrij. We declareren een wachtrij met channel.queueDeclare(). Het declareren van een wachtrij is idempotent, wat betekent dat je dit meerdere keren kunt aanroepen zonder problemen.
Als de wachtrij niet bestaat, wordt deze aangemaakt. Als hij al bestaat, gebeurt er niets.
Producent: 'Hello World!' versturen
Dit is een eenvoudig Java-programma dat als producent werkt. Het maakt verbinding met RabbitMQ, declareert een wachtrij met de naam "hello" en verstuurt één bericht.
Onthoud dat RabbitMQ op localhost moet draaien om dit te laten werken, zoals in een eerdere les is ingesteld.
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Producer {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
try (Connection connection = factory.newConnection();
Channel channel = connection.createChannel()) {
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
System.out.println(" [x] Sent '" + message + "'");
}
}
}Consument: berichten ontvangen
Laten we nu de consument maken. Dit programma maakt ook verbinding met RabbitMQ, declareert dezelfde wachtrij "hello" en wacht vervolgens voortdurend op berichten.
Wanneer er een bericht binnenkomt, drukt het programma dit af in de console. De waarde true in basicConsume betekent dat berichten automatisch worden bevestigd.
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DeliverCallback;
public class Consumer {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
DeliverCallback deliverCallback = (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
System.out.println(" [x] Received '" + message + "'");
};
channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
}
}Het voorbeeld uitvoeren
Om het voorbeeld in actie te zien, doe je gewoonlijk het volgende:
- Controleer of RabbitMQ actief is, bijvoorbeeld via Docker.
- Voer eerst de toepassing van de consument uit. Die begint met wachten.
- Voer de toepassing van de producent uit. Die verstuurt het bericht.
- Bekijk de uitvoer van de consument: deze hoort " [x] Received 'Hello World!'" af te drukken.
Gefeliciteerd, je hebt zojuist je eerste bericht via RabbitMQ verstuurd!
Belangrijkste punten van een eenvoudige wachtrij
De eenvoudige wachtrij met 'Hello World' laat het volgende zien:
- Eén-op-één-berichten: Eén producent, één wachtrij en één consument, hoewel meerdere consumenten om berichten kunnen concurreren, zoals we later zullen zien.
- Basale berichtbuffering: Berichten worden in de wachtrij opgeslagen totdat een consument klaar is.
- Ontkoppeling: De producent en consument hoeven niet tegelijkertijd actief te zijn.
Dit is de eenvoudigste vorm van berichtenuitwisseling en ideaal om te beginnen.
Korte controle: berichtenstroom
Bekijk de eenvoudige opstelling met 'Hello World'. Wat is de juiste volgorde van componenten om een bericht succesvol af te leveren en te verwerken?
Samenvatting: je eerste bericht!
Je hebt je eerste RabbitMQ-voorbeeld met 'Hello World' succesvol gemaakt!
- Je hebt de kernonderdelen geleerd: producent, wachtrij en consument.
- Je hebt gezien hoe je verbinding maakt met RabbitMQ en een wachtrij declareert.
- Je hebt eenvoudige Java-code geschreven om een bericht te versturen en te ontvangen.
Deze basiskennis komt goed van pas wanneer we complexere patronen voor berichtenuitwisseling gaan bekijken!
Leer RabbitMQ-berichten en asynchrone systemen met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 11
- Lessen
- 44
Veelgestelde vragen
Is de les “Hello World: eenvoudige queue” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad RabbitMQ-berichten en asynchrone systemen, waaronder “Hello World: eenvoudige queue”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus RabbitMQ-berichten en asynchrone systemen bevat in totaal 4 lessen.
Wat leer ik in “Hello World: eenvoudige queue”?
Maak uw eerste RabbitMQ-producer en -consumer om berichten via een eenvoudige queue te verzenden en ontvangen. Begrijp het 'Hello World' van message brokering. Je oefent met RabbitMQ-berichten en asynchrone systemen door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met RabbitMQ-berichten en asynchrone systemen te beginnen?
Ervaring vooraf is niet nodig. RabbitMQ-berichten en asynchrone systemen op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Hello World: eenvoudige queue”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over RabbitMQ-berichten en asynchrone systemen?
Ja. Elke les over RabbitMQ-berichten en asynchrone systemen bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Hello World: eenvoudige queue
- Work queues: eerlijke verdeling
- Berichtbevestigingen en duurzaamheid
- Publish/subscribe met fanout-exchanges