Megosztás a következőn keresztül:


Java Message Service 2.0 API használata az Azure Service Bus Premium használatával

Ez a cikk bemutatja, hogyan használhatja a népszerű Java Message Service (JMS) 2.0 API-t az Azure Service Bus használatával az Advanced Message Queueing Protocol (AMQP) 1.0 protokollon keresztül.

Feljegyzés

A Java Message Service (JMS) 2.0 API támogatása csak a prémium szinten érhető el.>

Előfeltételek

A Service Bus használatának első lépései

Ez az útmutató feltételezi, hogy már rendelkezik Service Bus-névtérrel. Ha nem, hozzon létre egy névteret és egy üzenetsort az Azure Portal használatával. A Service Bus-névterek és üzenetsorok létrehozásával kapcsolatos további információkért tekintse meg a Service Bus-üzenetsorok használatának első lépéseit az Azure Portalon.

Java-fejlesztési környezet beállítása

Java-alkalmazások fejlesztéséhez be kell állítania a megfelelő fejlesztési környezetet –

  • A JDK (Java Development Kit) vagy a JRE (Java Runtime Environment) telepítve van.
  • A rendszer hozzáadja a JDK-t vagy a JRE-t a buildelési útvonalhoz és a megfelelő rendszerváltozókhoz.
  • A JDK vagy a JRE használatához java IDE van telepítve. Például: Eclipse vagy IntelliJ.

Ha többet szeretne megtudni arról, hogyan készítheti elő a fejlesztői környezetet a Java-hoz az Azure-ban, használja ezt az útmutatót.

Milyen JMS-funkciók támogatottak?

Az alábbi táblázat az Azure Service Bus által jelenleg támogatott Java Message Service-funkciókat (JMS) sorolja fel. A nem támogatott funkciókat is megjeleníti.

Szolgáltatás API Állapot
Várólisták
  • JMSContext.createQueue( String queueName)
Támogatott
Témakörök
  • JMSContext.createTopic( String topicName)
Támogatott
Ideiglenes üzenetsorok
  • JMSContext.createTemporaryQueue()
Támogatott
Ideiglenes témakörök
  • JMSContext.createTemporaryTopic()
Támogatott
Üzenetkészítő /
JMSProducer
  • JMSContext.createProducer()
Támogatott
Várólista-böngészők
  • JMSContext.createBrowser (Üzenetsor-üzenetsor)
  • JMSContext.createBrowser(Queue Queue, String messageSelector)
Támogatott
Üzenet fogyasztója/
JMSConsumer
  • JMSContext.createConsumer( Cél célhely)
  • JMSContext.createConsumer( Cél célhely, SztringüzenetSelector)
  • JMSContext.createConsumer( Célhely, SztringüzenetSelector, logikai noLocal)

a noLocal jelenleg nem támogatott
Támogatott
Megosztott tartós előfizetések
  • JMSContext.createSharedDurableConsumer(Témakör témaköre, Sztring neve)
  • JMSContext.createSharedDurableConsumer(Témakör témaköre, Sztring neve, SztringüzenetSelector)
Támogatott
Nem tagolt tartós előfizetések
  • JMSContext.createDurableConsumer(Témakör témaköre, Sztring neve)
  • createDurableConsumer(Témakör témaköre, Sztring neve, SztringüzenetSelector, logikai noLocal)

a noLocal jelenleg nem támogatott, ezért hamis értékre kell állítani
Támogatott
Megosztott, nem tartós előfizetések
  • JMSContext.createSharedConsumer(Témakör témaköre, String sharedSubscriptionName)
  • JMSContext.createSharedConsumer(Témakör témaköre, String sharedSubscriptionName, String messageSelector)
Támogatott
Nem tagolt, nem tartós előfizetések
  • JMSContext.createConsumer(Cél célhely)
  • JMSContext.createConsumer( Cél célhely, SztringüzenetSelector)
  • JMSContext.createConsumer( Célhely, SztringüzenetSelector, logikai noLocal)

a noLocal jelenleg nem támogatott, ezért hamis értékre kell állítani
Támogatott
Üzenetválasztók a létrehozott fogyasztótól függ Támogatott
Kézbesítés késleltetése (ütemezett üzenetek)
  • JMSProducer.setDeliveryDelay( long deliveryDelay)
Támogatott
Üzenet létrehozva
  • JMSContext.createMessage()
  • JMSContext.createBytesMessage()
  • JMSContext.createMapMessage()
  • JMSContext.createObjectMessage( Szerializálható objektum)
  • JMSContext.createStreamMessage()
  • JMSContext.createTextMessage()
  • JMSContext.createTextMessage( Sztringszöveg)
Támogatott
Entitások közötti tranzakciók
  • Connection.createSession(igaz, Session.SESSION_TRANSACTED)
Támogatott
Elosztott tranzakciók Nem támogatott

A Java Message Service (JMS) ügyfélkódtárának letöltése

A prémium szinten elérhető összes funkció használatához adja hozzá a következő kódtárat a projekt buildelési útvonalához: azure-servicebus-jms. Ez a csomag néhány szükséges alapértelmezett beállítást biztosít, például az előzetes szabályzatértékeket, az újracsatlakozási szabályzatokat, a Microsoft Entra-azonosítót és a felügyelt identitást.

Feljegyzés

Az azure-servicebus-jms buildelési útvonalhoz való hozzáadásához használja az előnyben részesített függőségkezelési eszközt a projekthez, például a Mavenhez vagy a Gradle-hez.

Java-alkalmazások kódolása

A függőségek importálása után a Java-alkalmazások JMS-szolgáltatói módon írhatók.

Csatlakozás az Azure Service Bushoz JMS használatával

Ha JMS-ügyfelekkel szeretne csatlakozni az Azure Service Bushoz, szüksége van az Elsődleges kapcsolati sztring alatti Azure Portal megosztott hozzáférési szabályzataiban elérhető kapcsolati sztring.

  1. Példányosítsd a ServiceBusJmsConnectionFactorySettings

    ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings();
    connFactorySettings.setConnectionIdleTimeoutMS(20000);
    
  2. Példányosítsd a ServiceBusJmsConnectionFactory megfelelő ServiceBusConnectionString.

    String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>";
    ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
    
  3. A következővel ConnectionFactory hozhat létre egy Connection , majd egy Session

    Connection connection = factory.createConnection();
    Session session = connection.createSession();
    

    vagy ( JMSContext JMS 2.0-ügyfelek esetén)

    JMSContext jmsContext = factory.createContext();
    

    Fontos

    Bár hasonlóan elnevezett, a JMS "Session" és a Service Bus "Session" teljesen független egymástól.

    A JMS 1.1-ben a Munkamenet az API alapvető építőeleme, amely lehetővé teszi a , MessageConsumerés önmagának Message a MessageProducerlétrehozását. További részletekért tekintse át a JMS API programozási modelljét

    A Service Busban a munkamenetek szolgáltatás- és ügyféloldali szerkezetek, amelyek lehetővé teszik a FIFO-feldolgozást az üzenetsorokon és az előfizetéseken.

A JMS-alkalmazás írása

A példányosítást követően az Session JMSContext alkalmazás a jól ismert JMS API-kat használhatja mind a felügyeleti, mind az adatműveletek végrehajtásához. A támogatott JMS-funkciók listájában megtekintheti, hogy mely API-k támogatottak. Íme néhány mintakódrészlet a JMS használatának megkezdéséhez –

Üzenetek küldése üzenetsorba és témakörbe

// 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);

Üzenetek fogadása üzenetsorból

// 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();

Üzenetek fogadása megosztott tartós előfizetésből egy témakörben

// 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();

Összegzés

Ez az útmutató bemutatja, hogyan használhatják a Java-ügyfélalkalmazások a Java Message Service-t (JMS) AMQP 1.0-n keresztül.

A Service Bus AMQP 1.0-t más nyelvekről is használhatja, például .NET, C, Python és PHP nyelven. Az e különböző nyelvek használatával létrehozott összetevők megbízhatóan és teljes hűségben cserélhetik az üzeneteket a Service Bus AMQP 1.0-támogatásával.