RabbitMQ-meddelanden och asynkrona system · Lektion

Hello World: enkel kö

Skapa er första RabbitMQ-producent och -konsument för att skicka och ta emot meddelanden via en grundläggande kö. Förstå meddelandeförmedlingens motsvarighet till ”Hello World”.

Lektion 1 av 411 steg

Hello World: enkel kö är en gratis lektion i RabbitMQ-meddelanden och asynkrona system på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för RabbitMQ-meddelanden och asynkrona system, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i RabbitMQ-meddelanden och asynkrona system innehåller totalt 4 lektioner.

Din första meddelandekö!

Välkommen till din första praktiska lektion med RabbitMQ! Vi ska skapa ett enkelt exempel med ”Hello World”, vilket är det grundläggande steget för att förstå meddelandeköer.

Den här lektionen fokuserar på grunderna: att skicka ett meddelande till en kö och ta emot det.

De tre kärnkomponenterna: P, C, Q

Alla enkla meddelandekösystem har tre huvuddelar:

  • Producent: Applikationen som skickar meddelanden.
  • Kö: En buffert som lagrar meddelanden. Tänk på den som en brevlåda.
  • Konsument: Applikationen som tar emot och bearbetar meddelanden från kön.

I vårt ”Hello World” skickar en producent ”Hello World!” till en kö, och en konsument hämtar det.

Grundläggande meddelandeflöde

Processen är enkel:

  1. Producenten ansluter till RabbitMQ.
  2. Den skickar ett meddelande till en namngiven kö.
  3. Konsumenten ansluter också till RabbitMQ.
  4. Den lyssnar på samma namngivna kö.
  5. När ett meddelande anländer tar konsumenten emot och bearbetar det.

Detta frikopplar avsändaren från mottagaren och gör att de kan arbeta oberoende av varandra.

Ansluta till RabbitMQ

Innan våra applikationer kan skicka eller ta emot meddelanden måste de ansluta till RabbitMQ-servern. Vi använder en ConnectionFactory för att upprätta denna anslutning.

En Connection representerar en TCP-anslutning till förmedlaren. Från denna anslutning skapar vi en Channel, där de flesta API-operationer utförs.

Deklarera en kö

Både producenten och konsumenten måste vara överens om vilken kö som ska användas. Vi deklarerar en kö med channel.queueDeclare(). Att deklarera en kö är idempotent, vilket innebär att du kan anropa det flera gånger utan problem.

Om kön inte finns skapas den. Om den redan finns händer ingenting.

Producent: skicka ”Hello World!”

Här är ett enkelt Java-program som fungerar som producent. Det ansluter till RabbitMQ, deklarerar en kö med namnet "hello" och skickar ett enda meddelande.

Kom ihåg att RabbitMQ måste köras på localhost för att detta ska fungera, enligt konfigurationen i en tidigare lektion.

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 + "'");
        }
    }
}

Konsument: ta emot meddelanden

Nu skapar vi konsumenten. Detta program ansluter också till RabbitMQ, deklarerar samma kö, "hello", och väntar sedan kontinuerligt på meddelanden.

När ett meddelande anländer skriver programmet ut det i konsolen. true i basicConsume innebär att meddelanden bekräftas automatiskt.

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 -> { });
    }
}

Köra exemplet

För att se det i praktiken brukar du:

  1. Kontrollera att RabbitMQ körs, till exempel via Docker.
  2. Köra konsument-applikationen först. Den börjar då vänta.
  3. Köra producent-applikationen. Den skickar meddelandet.
  4. Observera konsumentens utdata: den bör skriva ut " [x] Received 'Hello World!'".

Grattis, du har precis skickat ditt första meddelande genom RabbitMQ!

Viktiga slutsatser om den enkla kön

Den enkla ”Hello World”-kön visar:

  • En-till-en-meddelanden: En producent, en kö och en konsument (även om flera konsumenter kan konkurrera om meddelanden, som vi ser senare).
  • Grundläggande meddelandebuffring: Meddelanden lagras i kön tills en konsument är redo.
  • Frikoppling: Producenten och konsumenten behöver inte köras samtidigt.

Detta är den enklaste formen av meddelandehantering och passar perfekt för att komma igång.

Snabbtest: meddelandeflödet

Tänk på den grundläggande ”Hello World”-konfigurationen. Vilken är rätt ordning på komponenterna för att ett meddelande ska levereras och bearbetas korrekt?

Sammanfattning: ditt första meddelande!

Du har skapat ditt första RabbitMQ-exempel med ”Hello World”!

  • Du har lärt dig om kärnkomponenterna: producent, kö och konsument.
  • Du har sett hur man ansluter till RabbitMQ och deklarerar en kö.
  • Du har implementerat enkel Java-kod för att skicka och ta emot ett meddelande.

Den här grundläggande förståelsen kommer att vara värdefull när vi utforskar mer avancerade meddelandemönster!

Gratis att börja

Lär dig RabbitMQ-meddelanden och asynkrona system med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
11
Lektioner
44

Vanliga frågor

Är lektionen ”Hello World: enkel kö” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen RabbitMQ-meddelanden och asynkrona system, inklusive ”Hello World: enkel kö”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i RabbitMQ-meddelanden och asynkrona system innehåller totalt 4 lektioner.

Vad lär jag mig i ”Hello World: enkel kö”?

Skapa er första RabbitMQ-producent och -konsument för att skicka och ta emot meddelanden via en grundläggande kö. Förstå meddelandeförmedlingens motsvarighet till ”Hello World”. Ni övar på RabbitMQ-meddelanden och asynkrona system med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig RabbitMQ-meddelanden och asynkrona system?

Du behöver inga förkunskaper. Utbildningen i RabbitMQ-meddelanden och asynkrona system på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Hello World: enkel kö”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här RabbitMQ-meddelanden och asynkrona system-lektionen?

Ja. Varje RabbitMQ-meddelanden och asynkrona system-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Hello World: enkel kö
  2. Arbetsköer: rättvis fördelning
  3. Meddelandebekräftelser och beständighet
  4. Publish/subscribe med fanout-exchanges
← Tillbaka till RabbitMQ-meddelanden och asynkrona system