Java Message Service 2.0-API gebruiken met Azure Service Bus Premium
In dit artikel wordt uitgelegd hoe u de populaire Java Message Service (JMS) 2.0-API gebruikt om te communiceren met Azure Service Bus via het AMQP 1.0-protocol (Advanced Message Queueing Protocol).
Notitie
Ondersteuning voor Java Message Service (JMS) 2.0 API is alleen beschikbaar in de Premium-laag.>
Vereisten
Aan de slag met Service Bus
In deze handleiding wordt ervan uitgegaan dat u al een Service Bus-naamruimte hebt. Als u dat niet doet, maakt u een naamruimte en een wachtrij met behulp van de Azure Portal. Zie Aan de slag met Service Bus-wachtrijen via de Azure Portal voor meer informatie over het maken van Service Bus-naamruimten en -wachtrijen.
Een Java Development-omgeving instellen
Als u Java-toepassingen wilt ontwikkelen, moet u de juiste ontwikkelomgeving instellen:
- De JDK (Java Development Kit) of de JRE (Java Runtime Environment) is geïnstalleerd.
- De JDK of JRE wordt toegevoegd aan het buildpad en de juiste systeemvariabelen.
- Er wordt een Java IDE geïnstalleerd om de JDK of JRE te gebruiken. Bijvoorbeeld Eclipse of IntelliJ.
Gebruik deze handleiding voor meer informatie over het voorbereiden van uw ontwikkelomgeving voor Java in Azure.
Welke JMS-functies worden ondersteund?
De volgende tabel bevat de functies van Java Message Service (JMS) die momenteel door Azure Service Bus worden ondersteund. Er worden ook functies weergegeven die niet worden ondersteund.
Functie | API | Status |
---|---|---|
Wachtrijen |
|
Ondersteund |
Onderwerpen |
|
Ondersteund |
Tijdelijke wachtrijen |
|
Ondersteund |
Tijdelijke onderwerpen |
|
Ondersteund |
Berichtproducent / JMSProducer |
|
Ondersteund |
Wachtrijbrowsers |
|
Ondersteund |
Message Consumer/ JMSConsumer |
noLocal wordt momenteel niet ondersteund |
Ondersteund |
Gedeelde duurzame abonnementen |
|
Ondersteund |
Niet-gedeelde duurzame abonnementen |
noLocal wordt momenteel niet ondersteund en moet worden ingesteld op false |
Ondersteund |
Gedeelde niet-duurzame abonnementen |
|
Ondersteund |
Niet-gedeelde niet-duurzame abonnementen |
noLocal wordt momenteel niet ondersteund en moet worden ingesteld op false |
Ondersteund |
Berichtkiezers | is afhankelijk van de consument die is gemaakt | Ondersteund |
Bezorgingsvertraging (geplande berichten) |
|
Ondersteund |
Bericht gemaakt |
|
Ondersteund |
Transacties tussen entiteiten |
|
Ondersteund |
Gedistribueerde transacties | Niet ondersteund |
De JMS-clientbibliotheek (Java Message Service) downloaden
Als u alle functies wilt gebruiken die beschikbaar zijn in de Premium-laag, voegt u de volgende bibliotheek toe aan het buildpad van het project.
Notitie
Als u de Azure-servicebus-jms wilt toevoegen aan het build-pad, gebruikt u het hulpprogramma voor voorkeursbeheer voor afhankelijkheid voor uw project, zoals Maven of Gradle.
Java-toepassingen coderen
Zodra de afhankelijkheden zijn geïmporteerd, kunnen de Java-toepassingen op een JMS-provideronafhankelijke manier worden geschreven.
Verbinding maken met Azure Service Bus met behulp van JMS
Als u verbinding wilt maken met Azure Service Bus met behulp van JMS-clients, hebt u de connection string nodig die beschikbaar is in het gedeelde toegangsbeleid in de Azure Portal onder Primaire verbindingsreeks.
Maak een exemplaar van de
ServiceBusJmsConnectionFactorySettings
ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connFactorySettings.setConnectionIdleTimeoutMS(20000);
Instantieer de
ServiceBusJmsConnectionFactory
met de juisteServiceBusConnectionString
.String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>"; ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
Gebruik de
ConnectionFactory
om eenConnection
en vervolgens een te makenSession
Connection connection = factory.createConnection(); Session session = connection.createSession();
of een
JMSContext
(voor JMS 2.0-clients)JMSContext jmsContext = factory.createContext();
Belangrijk
Hoewel een JMS-sessie en Service Bus-sessie op dezelfde manier worden genoemd, zijn ze volledig onafhankelijk van elkaar.
In JMS 1.1 is sessie een essentiële bouwsteen van de API waarmee de
MessageProducer
,MessageConsumer
en deMessage
zelf kunnen worden gemaakt. Raadpleeg het JMS API-programmeermodel voor meer informatieIn Service Bus zijn sessies service- en clientconstruct om FIFO-verwerking in te schakelen voor wachtrijen en abonnementen.
De JMS-toepassing schrijven
Zodra de Session
of JMSContext
is geïnstantieerd, kan uw toepassing de vertrouwde JMS-API's gebruiken om zowel beheer- als gegevensbewerkingen uit te voeren. Raadpleeg de lijst met ondersteunde JMS-functies om te zien welke API's worden ondersteund. Hier volgen enkele voorbeeldcodefragmenten om aan de slag te gaan met JMS -
Berichten verzenden naar een wachtrij en onderwerp
// 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);
Berichten ontvangen van een wachtrij
// 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();
Berichten ontvangen van een gedeeld duurzaam abonnement over een onderwerp
// 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();
Samenvatting
Deze handleiding laat zien hoe Java-clienttoepassingen met behulp van Java Message Service (JMS) via AMQP 1.0 kunnen communiceren met Azure Service Bus.
U kunt Service Bus AMQP 1.0 ook gebruiken vanuit andere talen, waaronder .NET, C, Python en PHP. Onderdelen die met deze verschillende talen zijn gebouwd, kunnen berichten betrouwbaar en met volledige betrouwbaarheid uitwisselen met behulp van de AMQP 1.0-ondersteuning in Service Bus.
Volgende stappen
Voor meer informatie over Azure Service Bus en details over JMS-entiteiten (Java Message Service) raadpleegt u de onderstaande koppelingen:
- Service Bus - Wachtrijen, onderwerpen en abonnementen
- Service Bus - Java Message Service-entiteiten
- AMQP 1.0-ondersteuning in Azure Service Bus
- Ontwikkelaarshandleiding voor Service Bus AMQP 1.0
- Aan de slag met Service Bus-wachtrijen
- Java Message Service-API (extern Oracle-document)
- Meer informatie over het migreren van ActiveMQ naar Service Bus
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor