Java Message Service 2.0 API használata Azure Service Bus Premiummal

Ez a cikk azt ismerteti, hogyan használhatja a népszerű Java Message Service (JMS) 2.0 API-t a Azure Service Bus az Advanced Message Queueing Protocol (AMQP 1.0) protokollon keresztüli interakcióhoz.

Megjegyzé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 a Azure Portal használatával. A Service Bus-névterek és -üzenetsorok létrehozásával kapcsolatos további információkért lásd: Ismerkedés a Service Bus-üzenetsorokkal a Azure Portal.

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 Javához az Azure-ban, használja ezt az útmutatót.

Milyen JMS-funkciók támogatottak?

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

Szolgáltatás API Állapot
Üzenetsorok
  • 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
Üzenetsor-böngészők
  • JMSContext.createBrowser(Queue Queue)
  • JMSContext.createBrowser(Queue queue, String messageSelector)
Támogatott
Üzenet fogyasztója/
JMSConsumer
  • JMSContext.createConsumer( Célhely)
  • JMSContext.createConsumer( Cél célhely, SztringüzenetKijelölő)
  • JMSContext.createConsumer( Célhely, SztringüzenetKijelölő, logikai noLocal)

A noLocal jelenleg nem támogatott
Támogatott
Megosztott tartós előfizetések
  • JMSContext.createSharedDurableConsumer(Témakör témakör, Sztring neve)
  • JMSContext.createSharedDurableConsumer(Témakör témakör, Sztring neve, SztringüzenetKijelölő)
Támogatott
Nem megosztható tartós előfizetések
  • JMSContext.createDurableConsumer(Témakör témakör, Sztring neve)
  • createDurableConsumer(Témakörtémakör, Sztring neve, SztringüzenetKijelölő, logikai noLocal)

A noLocal jelenleg nem támogatott, ezért false (hamis) értékre kell állítani
Támogatott
Megosztott, nem tartós előfizetések
  • JMSContext.createSharedConsumer(Topic topic, String sharedSubscriptionName)
  • JMSContext.createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector)
Támogatott
Nem megosztható, nem tartós előfizetések
  • JMSContext.createConsumer(Cél cél)
  • JMSContext.createConsumer( Cél célhely, SztringüzenetKijelölő)
  • JMSContext.createConsumer( Célhely, SztringüzenetKijelölő, logikai noLocal)

A noLocal jelenleg nem támogatott, ezért false (hamis) értékre kell állítani
Támogatott
Üzenetválasztók a létrehozott fogyasztótól függ Támogatott
Kézbesítési késleltetés (ü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(true, 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

Megjegyzé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 Azure Service Bus JMS használatával

Ha JMS-ügyfelek használatával szeretne csatlakozni Azure Service Bus, szüksége lesz az elsődleges kapcsolati sztring alatti Azure Portal "Megosztott hozzáférési szabályzatok" szakaszában elérhető kapcsolati sztring.

  1. Példányosítsd a ServiceBusJmsConnectionFactorySettings

    ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings();
    connFactorySettings.setConnectionIdleTimeoutMS(20000);
    
  2. A példányosítása a ServiceBusJmsConnectionFactory megfelelővel ServiceBusConnectionString.

    String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>";
    ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
    
  3. ConnectionFactory A használatával vagy hozzon létre egyConnection, majd egySession

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

    vagy a 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 vagy JMSContext példányosítása Session után az alkalmazás a jól ismert JMS API-kat használhatja a felügyeleti és 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 egy 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();

Összefoglalás

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

A Service Bus AMQP 1.0-t más nyelvekről is használhatja, beleértve a .NET, a C, a Python és a PHP nyelveket is. Az e különböző nyelvek használatával létrehozott összetevők megbízhatóan és teljes hűség mellett válthatnak üzeneteket a Service Bus AMQP 1.0-támogatásával.

Következő lépések

A Java Message Service-entitásokkal (JMS) kapcsolatos Azure Service Bus és részletekért tekintse meg az alábbi hivatkozásokat :