Použití rozhraní API služby Java Message Service 2.0 se službou Azure Service Bus Premium
Tento článek vysvětluje, jak používat oblíbené rozhraní API JMS (Java Message Service) 2.0 k interakci se službou Azure Service Bus přes protokol AMQP (Advanced Message Queueing Protocol) 1.0.
Poznámka:
Podpora rozhraní API služby Java Message Service (JMS) 2.0 je dostupná jenom na úrovni Premium.>
Požadavky
Začínáme se službou Service Bus
V této příručce se předpokládá, že už máte obor názvů služby Service Bus. Pokud ne, vytvořte obor názvů a frontu pomocí webu Azure Portal. Další informace o tom, jak vytvářet obory názvů a fronty služby Service Bus, najdete v tématu Začínáme s frontami služby Service Bus prostřednictvím webu Azure Portal.
Nastavení vývojového prostředí Java
Pokud chcete vyvíjet aplikace v Javě, musíte nastavit příslušné vývojové prostředí –
- Nainstaluje se sada JDK (Java Development Kit) nebo prostředí JRE (Java Runtime Environment).
- Sada JDK nebo JRE se přidá do cesty sestavení a příslušných systémových proměnných.
- Nainstaluje se integrované vývojové prostředí Java pro využití sady JDK nebo JRE. Například Eclipse nebo IntelliJ.
Další informace o tom, jak připravit vývojové prostředí pro Javu v Azure, najdete v této příručce.
Jaké funkce JMS jsou podporované?
Následující tabulka uvádí funkce JMS (Java Message Service), které služba Azure Service Bus aktuálně podporuje. Zobrazuje také nepodporované funkce.
Funkce | rozhraní API | Stav |
---|---|---|
Fronty |
|
Podporuje se |
Témata |
|
Podporuje se |
Dočasné fronty |
|
Podporuje se |
Dočasná témata |
|
Podporuje se |
Producent zpráv / JMSProducer |
|
Podporuje se |
Prohlížeče front |
|
Podporuje se |
Příjemce zprávy/ JMSConsumer |
NoLocal se v současné době nepodporuje. |
Podporuje se |
Sdílená odolná předplatná |
|
Podporuje se |
Zrušení sdílení trvalých předplatných |
noLocal se v současné době nepodporuje a měl by být nastavený na false. |
Podporuje se |
Sdílená non-durable předplatná |
|
Podporuje se |
Nesdílené non-durable předplatná |
noLocal se v současné době nepodporuje a měl by být nastavený na false. |
Podporuje se |
Selektory zpráv | závisí na vytvořeném příjemci. | Podporuje se |
Zpoždění doručení (naplánované zprávy) |
|
Podporuje se |
Zpráva byla vytvořena. |
|
Podporuje se |
Transakce mezi entitami |
|
Podporuje se |
Distribuované transakce | Nepodporováno |
Stažení klientské knihovny JMS (Java Message Service)
Pokud chcete využít všechny funkce dostupné na úrovni Premium, přidejte do cesty sestavení projektu následující knihovnu: azure-servicebus-jms. Tento balíček obsahuje některé nezbytné výchozí hodnoty, jako jsou předběžné načtení hodnot zásad, opětovné připojení zásad, Microsoft Entra ID a podpora spravované identity.
Poznámka:
Pokud chcete přidat azure-servicebus-jms do cesty sestavení, použijte preferovaný nástroj pro správu závislostí pro váš projekt, jako je Maven nebo Gradle.
Kódování aplikací v Javě
Jakmile se závislosti naimportují, dají se aplikace v Javě napsat nezávislou na poskytovateli JMS.
Připojení ke službě Azure Service Bus pomocí JMS
Pokud se chcete připojit ke službě Azure Service Bus pomocí klientů JMS, potřebujete připojovací řetězec, která je k dispozici v zásadách sdíleného přístupu na webu Azure Portal v části Primární připojovací řetězec.
Vytvoření instance instance
ServiceBusJmsConnectionFactorySettings
ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connFactorySettings.setConnectionIdleTimeoutMS(20000);
ServiceBusJmsConnectionFactory
Vytvořte instanci příslušnéhoServiceBusConnectionString
souboru .String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>"; ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
Použijte příkaz
ConnectionFactory
k vytvořeníConnection
a následnémuSession
Connection connection = factory.createConnection(); Session session = connection.createSession();
JMSContext
nebo (pro klienty JMS 2.0)JMSContext jmsContext = factory.createContext();
Důležité
I když se podobá pojmenování, relace JMS a Service Bus Session je zcela nezávislá na sobě.
V JMS 1.1 je relace základním stavebním blokem rozhraní API, který umožňuje vytváření
MessageProducer
,MessageConsumer
aMessage
samotné. Další podrobnosti najdete v programovacím modelu rozhraní JMS API.Ve službě Service Bus jsou relace konstruktorem na straně služby a klienta, které umožňují zpracování FIFO ve frontách a předplatných.
Napsání aplikace JMS
Session
Po vytvoření instance může JMSContext
vaše aplikace používat známá rozhraní API JMS k provádění operací správy i dat. Informace o podporovaných funkcích JMS najdete v seznamu podporovaných funkcí JMS a zjistěte, která rozhraní API jsou podporovaná. Tady je několik ukázkových fragmentů kódu, které vám pomůžou začít s JMS –
Odesílání zpráv do fronty a tématu
// 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);
Příjem zpráv z fronty
// 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();
Příjem zpráv ze sdíleného odolného předplatného v tématu
// 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();
Shrnutí
Tento průvodce předvádí, jak můžou klientské aplikace v Javě využívající službu Java Message Service (JMS) přes AMQP 1.0 komunikovat se službou Azure Service Bus.
Service Bus AMQP 1.0 můžete použít také z jiných jazyků, včetně .NET, C, Pythonu a PHP. Komponenty vytvořené pomocí těchto různých jazyků můžou spolehlivě a plně věrně vyměňovat zprávy pomocí podpory AMQP 1.0 ve službě Service Bus.