Använda Java Message Service 2.0 API med Azure Service Bus Premium
Den här artikeln beskriver hur du använder det populära Java Message Service (JMS) 2.0-API :et för att interagera med Azure Service Bus via PROTOKOLLET ADVANCED Message Queueing Protocol (AMQP) 1.0.
Kommentar
Stöd för Java Message Service (JMS) 2.0 API är endast tillgängligt på premiumnivån.>
Förutsättningar
Kom igång med Service Bus
Den här guiden förutsätter att du redan har ett Service Bus-namnområde. Om du inte gör det skapar du ett namnområde och en kö med hjälp av Azure Portal. Mer information om hur du skapar Service Bus-namnområden och köer finns i Kom igång med Service Bus-köer via Azure Portal.
Konfigurera en Java Development-miljö
För att utveckla Java-program måste du konfigurera lämplig utvecklingsmiljö –
- Antingen installeras JDK (Java Development Kit) eller JRE (Java Runtime Environment).
- JDK eller JRE läggs till i byggsökvägen och lämpliga systemvariabler.
- En Java IDE installeras för att använda JDK eller JRE. Till exempel Eclipse eller IntelliJ.
Om du vill veta mer om hur du förbereder din utvecklarmiljö för Java i Azure kan du använda den här guiden.
Vilka JMS-funktioner stöds?
I följande tabell visas de JMS-funktioner (Java Message Service) som Azure Service Bus stöder för närvarande. Den visar även funktioner som inte stöds.
Funktion | API | Status |
---|---|---|
Köer |
|
Stöds |
Ämnen |
|
Stöds |
Tillfälliga köer |
|
Stöds |
Tillfälliga ämnen |
|
Stöds |
Meddelandeproducent/ JMSProducer |
|
Stöds |
Köwebbläsare |
|
Stöds |
Meddelandekonsument/ JMSConsumer |
noLocal stöds för närvarande inte |
Stöds |
Delade varaktiga prenumerationer |
|
Stöds |
Ej delade varaktiga prenumerationer |
noLocal stöds för närvarande inte och bör anges till false |
Stöds |
Delade icke-varaktiga prenumerationer |
|
Stöds |
Ej delade icke-varaktiga prenumerationer |
noLocal stöds för närvarande inte och bör anges till false |
Stöds |
Meddelandeväljare | beror på vilken konsument som skapats | Stöds |
Leveransfördröjning (schemalagda meddelanden) |
|
Stöds |
Meddelande har skapats |
|
Stöds |
Transaktioner mellan entiteter |
|
Stöds |
Distribuerade transaktioner | Stöds inte |
Ladda ned JMS-klientbiblioteket (Java Message Service)
Om du vill använda alla tillgängliga funktioner på premiumnivån lägger du till följande bibliotek i projektets byggsökväg: azure-servicebus-jms. Det här paketet innehåller några nödvändiga standardvärden som prefetch-principvärden, återanslutningsprinciper, Microsoft Entra-ID och stöd för hanterad identitet direkt.
Kommentar
Om du vill lägga till azure-servicebus-jms i byggsökvägen använder du det önskade beroendehanteringsverktyget för ditt projekt som Maven eller Gradle.
Koda Java-program
När beroendena har importerats kan Java-programmen skrivas på ett oberoende JMS-provider.
Ansluta till Azure Service Bus med JMS
För att ansluta till Azure Service Bus med JMS-klienter behöver du den anslutningssträng som är tillgänglig i principerna för delad åtkomst i Azure Portal under Primär anslutningssträng.
Instansiera
ServiceBusJmsConnectionFactorySettings
ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connFactorySettings.setConnectionIdleTimeoutMS(20000);
Instansiera
ServiceBusJmsConnectionFactory
med lämpligServiceBusConnectionString
.String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>"; ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
ConnectionFactory
Använd för att antingen skapa enConnection
och sedan enSession
Connection connection = factory.createConnection(); Session session = connection.createSession();
eller en
JMSContext
(för JMS 2.0-klienter)JMSContext jmsContext = factory.createContext();
Viktigt!
Även om den heter på samma sätt är en JMS-session och Service Bus-session helt oberoende av varandra.
I JMS 1.1 är session en viktig byggsten i API:et som gör det möjligt att skapa
MessageProducer
,MessageConsumer
ochMessage
sig själv. Mer information finns i programmeringsmodellen för JMS APII Service Bus är sessioner konstruktionen på tjänst- och klientsidan för att aktivera FIFO-bearbetning i köer och prenumerationer.
Skriva JMS-programmet
Session
När eller JMSContext
har instansierat kan ditt program använda de välbekanta JMS-API:erna för att utföra både hanterings- och dataåtgärder. Se listan över JMS-funktioner som stöds för att se vilka API:er som stöds. Här följer några exempelkodfragment för att komma igång med JMS –
Skicka meddelanden till en kö och ett ämne
// Create the queue and topic
Queue queue = jmsContext.createQueue("basicQueue");
Topic topic = jmsContext.createTopic("basicTopic");
// Create the message
Message msg = jmsContext.createMessage();
// Create the JMS message producer
JMSProducer producer = jmsContext.createProducer();
// send the message to the queue
producer.send(queue, msg);
// send the message to the topic
producer.send(topic, msg);
Ta emot meddelanden från en kö
// Create the queue
Queue queue = jmsContext.createQueue("basicQueue");
// Create the message consumer
JMSConsumer consumer = jmsContext.createConsumer(queue);
// Receive the message
Message msg = (Message) consumer.receive();
Ta emot meddelanden från en delad varaktig prenumeration i ett ämne
// Create the topic
Topic topic = jmsContext.createTopic("basicTopic");
// Create a shared durable subscriber on the topic
JMSConsumer sharedDurableConsumer = jmsContext.createSharedDurableConsumer(topic, "sharedDurableConsumer");
// Receive the message
Message msg = (Message) sharedDurableConsumer.receive();
Sammanfattning
Den här guiden visar hur Java-klientprogram med Java Message Service (JMS) via AMQP 1.0 kan interagera med Azure Service Bus.
Du kan också använda Service Bus AMQP 1.0 från andra språk, inklusive .NET, C, Python och PHP. Komponenter som skapats med dessa olika språk kan utbyta meddelanden på ett tillförlitligt sätt och med fullständig återgivning med hjälp av AMQP 1.0-stöd i Service Bus.