Snabbstart: Azure Queue Storage-klientbibliotek v12 för Java

Kom igång med Azure Queue Storage-klientbiblioteket v12 för Java. Azure Queue Storage är en tjänst för lagring av ett stort antal meddelanden för senare hämtning och bearbetning. Följ de här stegen för att installera paketet och prova exempelkod för grundläggande uppgifter.

Använd Azure Queue Storage-klientbiblioteket v12 för Java för att:

  • Skapa en kö
  • Lägga till meddelanden i en kö
  • Granska meddelanden i en kö
  • Uppdatera ett meddelande i en kö
  • Ta emot och ta bort meddelanden från en kö
  • Ta bort en kö

Ytterligare resurser:

Förutsättningar

Inrätta

Det här avsnittet beskriver steg för steg hur du förbereder ett projekt för att arbeta med Azure Queue Storage-klientbiblioteket v12 för Java.

Skapa projektet

Skapa ett Java-program med namnet queues-quickstart-v12.

  1. I ett konsolfönster (till exempel cmd, PowerShell eller Bash) använder du Maven för att skapa en ny konsolapp med namnet queues-quickstart-v12. Skriv följande mvn kommando för att skapa ett "hello world" Java-projekt.

    mvn archetype:generate `
        --define interactiveMode=n `
        --define groupId=com.queues.quickstart `
        --define artifactId=queues-quickstart-v12 `
        --define archetypeArtifactId=maven-archetype-quickstart `
        --define archetypeVersion=1.4
    
  2. Utdata från genereringen av projektet bör se ut ungefär så här:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------< org.apache.maven:standalone-pom >-------------------
    [INFO] Building Maven Stub Project (No POM) 1
    [INFO] --------------------------------[ pom ]---------------------------------
    [INFO]
    [INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
    [INFO]
    [INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
    [INFO]
    [INFO]
    [INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
    [INFO] Generating project in Batch mode
    [INFO] ----------------------------------------------------------------------------
    [INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
    [INFO] ----------------------------------------------------------------------------
    [INFO] Parameter: groupId, Value: com.queues.quickstart
    [INFO] Parameter: artifactId, Value: queues-quickstart-v12
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: package, Value: com.queues.quickstart
    [INFO] Parameter: packageInPathFormat, Value: com/queues/quickstart
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: package, Value: com.queues.quickstart
    [INFO] Parameter: groupId, Value: com.queues.quickstart
    [INFO] Parameter: artifactId, Value: queues-quickstart-v12
    [INFO] Project created from Archetype in dir: C:\quickstarts\queues\queues-quickstart-v12
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  6.394 s
    [INFO] Finished at: 2019-12-03T09:58:35-08:00
    [INFO] ------------------------------------------------------------------------
    
  3. Växla till den nyligen skapade queues-quickstart-v12 katalogen.

    cd queues-quickstart-v12
    

Installera paketet

pom.xml Öppna filen i textredigeraren. Lägg till följande beroendeelement i gruppen med beroenden.

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-storage-queue</artifactId>
  <version>12.0.1</version>
</dependency>

Konfigurera appramverket

Från projektkatalogen:

  1. Gå till katalogen /src/main/java/com/queues/quickstart
  2. App.java Öppna filen i redigeringsprogrammet
  3. Ta bort -instruktionen System.out.println("Hello, world");
  4. Lägga till import direktiv

Här är koden:

package com.queues.quickstart;

/**
 * Azure Queue Storage client library v12 quickstart
 */
import com.azure.storage.queue.*;
import com.azure.storage.queue.models.*;
import java.io.*;
import java.time.*;

public class App
{
    public static void main( String[] args ) throws IOException
    {
    }
}

Kopiera dina autentiseringsuppgifter från Azure-portalen

När exempelprogrammet skickar en begäran till Azure Storage måste det auktoriseras. Om du vill auktorisera en begäran lägger du till dina autentiseringsuppgifter för lagringskontot i programmet som en anslutningssträng. Följ dessa steg om du vill visa dina autentiseringsuppgifter för lagringskontot:

  1. Logga in på Azure-portalen.

  2. Leta rätt på ditt lagringskonto.

  3. I menyfönstret för lagringskontot går du till Säkerhet + nätverk och väljer Åtkomstnycklar. Här kan du visa kontoåtkomstnycklarna och den fullständiga anslutningssträngen för varje nyckel.

    Screenshot that shows where the access key settings are in the Azure portal

  4. I fönstret Åtkomstnycklar väljer du Visa nycklar.

  5. Leta upp värdet för Anslutningssträng i avsnittet key1. Välj ikonen Kopiera till Urklipp för att kopiera anslutningssträngen. Du lägger till värdet för anslutningssträngen i en miljövariabel i nästa avsnitt.

    Screenshot showing how to copy a connection string from the Azure portal

Konfigurera anslutningssträngen för lagring

När du har kopierat anslutningssträngen skriver du den till en ny miljövariabel på den lokala datorn som kör programmet. Konfigurera miljövariabeln genom att öppna ett konsolfönster och följa anvisningarna för ditt operativsystem. Ersätt <yourconnectionstring> med den faktiska anslutningssträngen.

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

När du har lagt till miljövariabeln i Windows måste du starta en ny instans av kommandofönstret.

Starta om program

När du har lagt till miljövariabeln startar du om alla program som körs och som behöver läsa miljövariabeln. Starta till exempel om utvecklingsmiljön eller redigeringsprogrammet innan du fortsätter.

Objektmodell

Azure Queue Storage är en tjänst för lagring av ett stort antal meddelanden. Ett kömeddelande kan vara upp till 64 kB stort. En kö kan innehålla miljontals meddelanden, upp till den totala kapacitetsgränsen för ett lagringskonto. Köer används ofta för att skapa en kvarvarande arbetslogg för att bearbeta asynkront. Queue Storage erbjuder tre typer av resurser:

  • Lagringskontot
  • En kö i lagringskontot
  • Meddelanden i kön

Följande diagram visar relationen mellan de här resurserna.

Diagram of Queue storage architecture

Använd följande Java-klasser för att interagera med dessa resurser:

  • QueueClientBuilder: Klassen QueueClientBuilder konfigurerar och instansierar ett QueueClient -objekt.
  • QueueServiceClientQueueServiceClient: Gör att du kan hantera alla köer i ditt lagringskonto.
  • QueueClient: Med QueueClient klassen kan du hantera och ändra en enskild kö och dess meddelanden.
  • QueueMessageItem: Klassen QueueMessageItem representerar de enskilda objekt som returneras vid anrop i ReceiveMessages en kö.

Kodexempel

De här exempelkodfragmenten visar hur du utför följande åtgärder med Azure Queue Storage-klientbiblioteket för Java:

Hämta anslutningssträngen

Följande kod hämtar anslutningssträngen för lagringskontot. Anslutningssträngen lagras i miljövariabeln som skapades i avsnittet Konfigurera lagringsanslutningssträngen .

Lägg till den här koden i main metoden :

System.out.println("Azure Queue Storage client library v12 - Java quickstart sample\n");

// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the environment variable
// is created after the application is launched in a console or with
// Visual Studio, the shell or application needs to be closed and reloaded
// to take the environment variable into account.
String connectStr = System.getenv("AZURE_STORAGE_CONNECTION_STRING");

Skapa en kö

Bestäm ett namn för den nya kön. Följande kod lägger till ett GUID-värde i könamnet för att säkerställa att det är unikt.

Viktigt

Könamn får endast innehålla gemener, siffror och bindestreck och måste börja med en bokstav eller en siffra. Varje bindestreck måste föregås och följas av ett tecken som inte är ett bindestreck. Namnet måste också vara mellan 3 och 63 tecken långt. Mer information om namngivning av köer finns i Namngivning av köer och metadata.

Skapa en instans av QueueClient klassen . Create Anropa sedan metoden för att skapa kön i ditt lagringskonto.

Lägg till den här koden i slutet av main metoden:

// Create a unique name for the queue
String queueName = "quickstartqueues-" + java.util.UUID.randomUUID();

System.out.println("Creating queue: " + queueName);

// Instantiate a QueueClient which will be
// used to create and manipulate the queue
QueueClient queueClient = new QueueClientBuilder()
                                .connectionString(connectStr)
                                .queueName(queueName)
                                .buildClient();

// Create the queue
queueClient.create();

Lägga till meddelanden i en kö

Följande kodfragment lägger till meddelanden i kön genom att anropa sendMessage metoden . Det sparar också ett SendMessageResult som returneras från ett sendMessage anrop. Resultatet används för att uppdatera meddelandet senare i programmet.

Lägg till den här koden i slutet av main metoden:

System.out.println("\nAdding messages to the queue...");

// Send several messages to the queue
queueClient.sendMessage("First message");
queueClient.sendMessage("Second message");

// Save the result so we can update this message later
SendMessageResult result = queueClient.sendMessage("Third message");

Granska meddelanden i en kö

Granska meddelandena i kön genom att anropa peekMessages metoden . Den här metoden hämtar ett eller flera meddelanden längst fram i kön, men ändrar inte meddelandets synlighet.

Lägg till den här koden i slutet av main metoden:

System.out.println("\nPeek at the messages in the queue...");

// Peek at messages in the queue
queueClient.peekMessages(10, null, null).forEach(
    peekedMessage -> System.out.println("Message: " + peekedMessage.getMessageText()));

Uppdatera ett meddelande i en kö

Uppdatera innehållet i ett meddelande genom att anropa updateMessage metoden . Den här metoden kan ändra ett meddelandes tidsgräns för synlighet och innehåll. Meddelandeinnehållet måste vara en UTF-8-kodad sträng som är upp till 64 kB stort. Tillsammans med nytt innehåll för meddelandet skickar du meddelande-ID:t och popkvittot med hjälp SendMessageResult av som sparades tidigare i koden. Meddelande-ID:t och popkvittot identifierar vilket meddelande som ska uppdateras.

System.out.println("\nUpdating the third message in the queue...");

// Update a message using the result that
// was saved when sending the message
queueClient.updateMessage(result.getMessageId(),
                          result.getPopReceipt(),
                          "Third message has been updated",
                          Duration.ofSeconds(1));

Ta emot och ta bort meddelanden från en kö

Ladda ned tidigare tillagda meddelanden genom att receiveMessages anropa metoden . Exempelkoden tar också bort meddelanden från kön när de har tagits emot och bearbetats. I det här fallet visar bearbetningen bara meddelandet på konsolen.

Appen pausar för användarindata genom att anropa System.console().readLine(); innan den tar emot och tar bort meddelandena. Kontrollera i Azure-portalen att resurserna har skapats korrekt innan de tas bort. Meddelanden som inte uttryckligen tas bort kommer så småningom att visas i kön igen för en ny chans att bearbeta dem.

Lägg till den här koden i slutet av main metoden:

System.out.println("\nPress Enter key to receive messages and delete them from the queue...");
System.console().readLine();

// Get messages from the queue
queueClient.receiveMessages(10).forEach(
    // "Process" the message
    receivedMessage -> {
        System.out.println("Message: " + receivedMessage.getMessageText());

        // Let the service know we're finished with
        // the message and it can be safely deleted.
        queueClient.deleteMessage(receivedMessage.getMessageId(), receivedMessage.getPopReceipt());
    }
);

Ta bort en kö

Följande kod rensar de resurser som appen skapade genom att ta bort kön med hjälp av Delete metoden .

Lägg till den här koden i slutet av main metoden:

System.out.println("\nPress Enter key to delete the queue...");
System.console().readLine();

// Clean up
System.out.println("Deleting queue: " + queueClient.getQueueName());
queueClient.delete();

System.out.println("Done");

Kör koden

Den här appen skapar och lägger till tre meddelanden i en Azure-kö. Koden visar meddelandena i kön och hämtar och tar bort dem innan kön slutligen tas bort.

I konsolfönstret navigerar du till programkatalogen och skapar och kör sedan programmet.

mvn compile

Skapa sedan paketet.

mvn package

Kör appen med följande mvn kommando.

mvn exec:java -Dexec.mainClass="com.queues.quickstart.App" -Dexec.cleanupDaemonThreads=false

Utdata från appen liknar följande exempel:

Azure Queue Storage client library v12 - Java quickstart sample

Adding messages to the queue...

Peek at the messages in the queue...
Message: First message
Message: Second message
Message: Third message

Updating the third message in the queue...

Press Enter key to receive messages and delete them from the queue...

Message: First message
Message: Second message
Message: Third message has been updated

Press Enter key to delete the queue...

Deleting queue: quickstartqueues-fbf58f33-4d5a-41ac-ac0e-1a05d01c7003
Done

När appen pausar innan du tar emot meddelanden kontrollerar du lagringskontot i Azure-portalen. Kontrollera att meddelandena finns i kön.

Tryck på tangenten Enter för att ta emot och ta bort meddelandena. När du uppmanas att göra det trycker du på tangenten Enter igen för att ta bort kön och slutföra demonstrationen.

Nästa steg

I den här snabbstarten har du lärt dig hur du skapar en kö och lägger till meddelanden i den med hjälp av Java-kod. Sedan lärde du dig att granska, hämta och ta bort meddelanden. Slutligen lärde du dig att ta bort en meddelandekö.

Självstudier, exempel, snabbstarter och annan dokumentation finns i: