Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Důležité poznámky
Tady je několik důležitých bodů:
- Podpora rozhraní API JMS 2.0 je dostupná jenom na úrovni Premium a použitím knihovny azure-servicebus-jms.
- Pokud používáte jiné knihovny JMS než azure-servicebus-jms (například nejnovější qpid-jms-client) pro prémiový obor názvů, pozorujete chování JMS 1.1 a některé funkce JMS 2.0 nemusí fungovat podle očekávání. Knihovna azure-servicebus-jms nevytvoří zámek dodavatele jakéhokoli druhu, protože stále využívá závislost na qpid-jms-client. Všechna rozhraní API, která pracují na qpid-jms-client, fungují i v knihovně azure-servicebus-jms.
- Azure-servicebus-jms je také opensourcová knihovna. Knihovna azure-servicebus-jms byla vytvořena hlavně tak, aby služba Service Bus dokázala rozlišovat mezi zákazníky, kteří potřebují chování JMS 1.1 (zpětná kompatibilita) a chování JMS 2.0 při práci s oborem názvů Premium. Knihovna azure-servicebus-jms také poskytuje některé nezbytné výchozí hodnoty, jako jsou hodnoty zásad pro předběžné načítání, zásady pro opětovné připojení, Microsoft Entra ID, podpora spravované identity a podpora automatického odstranění při nečinnosti pro entity přímo ze základní nabídky.
- Následující cesta k balíčku azure-servicebus-jms odkazuje na nejnovější verzi knihovny, která je založená na specifikaci Jakarta Messaging (API specifikace Jakarta.*): Maven Central: com.azure:azure-servicebus-jms. Následující cesta k azure-servicebus-jms představuje poslední verzi knihovny před specifikací Jakarta Messaging (javax.* API): Maven Central: com.microsoft.azure:azure-servicebus-jms.
Požadavky
Začínáme s Service Bus
Příručka předpokládá, že už máte obor názvů pro službu 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ává do sestavovací cesty 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é trvalé 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á krátkodobá předplatná |
|
Podporuje se |
| Nesdílená nedlouhá 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. Selektory služby Service Bus nepodporují klíčová slova LIKE a BETWEEN SQL. | 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 poskytuje některé nezbytné výchozí hodnoty, jako jsou hodnoty zásad předběžného načtení, zásady opětovného připojení, Microsoft Entra ID a automatická 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
ServiceBusJmsConnectionFactorySettingsServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connFactorySettings.setConnectionIdleTimeoutMS(20000);Vytvořte instanci
ServiceBusJmsConnectionFactorys příslušnýmServiceBusConnectionString.String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>"; ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);Použijte
ConnectionFactoryk vytvořeníConnectiona potéSessionConnection connection = factory.createConnection(); Session session = connection.createSession();JMSContextnebo (pro klienty JMS 2.0)JMSContext jmsContext = factory.createContext();Důležité
Ačkoli mají podobné názvy, relace 'Session' v JMS a 'Session' v Service Bus jsou na sobě zcela nezávislé.
Ve JMS 1.1 je relace základním stavebním blokem rozhraní API, který umožňuje vytváření
MessageProducer,MessageConsumera samotnéhoMessage. Další podrobnosti najdete v programovacím modelu rozhraní JMS API.Ve službě Service Bus jsou relace konstruktem na straně služby i klienta, který umožňuje zpracování FIFO ve frontách a předplatných.
Napsání aplikace JMS
Jakmile Session nebo JMSContext je vytvořeno, vaše aplikace může používat známá rozhraní API JMS k provádění jak manažerských, tak datových operací. 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 trvalého předplatného na 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.