Używanie interfejsu API usługi Java Message Service 2.0 z usługą Azure Service Bus Premium
W tym artykule wyjaśniono, jak używać popularnego interfejsu API usługi Java Message Service (JMS) 2.0 do interakcji z Azure Service Bus za pośrednictwem protokołu Advanced Message Queueing Protocol (AMQP 1.0).
Uwaga
Obsługa interfejsu API usługi Java Message Service (JMS) 2.0 jest dostępna tylko w warstwie Premium.>
Wymagania wstępne
Rozpoczynanie pracy z usługą Service Bus
W tym przewodniku założono, że masz już przestrzeń nazw usługi Service Bus. Jeśli tak nie jest, utwórz przestrzeń nazw i kolejkę przy użyciu Azure Portal. Aby uzyskać więcej informacji na temat tworzenia przestrzeni nazw i kolejek usługi Service Bus, zobacz Rozpoczynanie pracy z kolejkami usługi Service Bus za pośrednictwem Azure Portal.
Konfigurowanie środowiska deweloperskiego Java
Aby tworzyć aplikacje Java, należy skonfigurować odpowiednie środowisko projektowe —
- Zainstalowano zestaw JDK (Java Development Kit) lub środowisko JRE (Środowisko uruchomieniowe Java).
- Zestaw JDK lub jrE jest dodawany do ścieżki kompilacji i odpowiednich zmiennych systemowych.
- Środowisko IDE języka Java jest instalowane w celu korzystania z zestawu JDK lub środowiska JRE. Na przykład Środowisko Eclipse lub IntelliJ.
Aby dowiedzieć się więcej na temat przygotowywania środowiska deweloperskiego dla języka Java na platformie Azure, skorzystaj z tego przewodnika.
Jakie funkcje JMS są obsługiwane?
W poniższej tabeli wymieniono funkcje usługi Java Message Service (JMS), które Azure Service Bus obecnie obsługiwane. Pokazuje również funkcje, które nie są obsługiwane.
Cecha | interfejs API | Stan |
---|---|---|
Kolejki |
|
Obsługiwane |
Tematy |
|
Obsługiwane |
Kolejki tymczasowe |
|
Obsługiwane |
Tematy tymczasowe |
|
Obsługiwane |
Producent wiadomości / JMSProducer |
|
Obsługiwane |
Przeglądarki kolejek |
|
Obsługiwane |
Odbiorca wiadomości/ JMSConsumer |
NoLocal nie jest obecnie obsługiwany |
Obsługiwane |
Udostępnione trwałe subskrypcje |
|
Obsługiwane |
Nieudostępne trwałe subskrypcje |
wartość noLocal nie jest obecnie obsługiwana i powinna być ustawiona na wartość false |
Obsługiwane |
Udostępnione subskrypcje nietrwałe |
|
Obsługiwane |
Nieudostępne subskrypcje nietrwałe |
wartość noLocal nie jest obecnie obsługiwana i powinna być ustawiona na wartość false |
Obsługiwane |
Selektory komunikatów | zależy od utworzonego konsumenta | Obsługiwane |
Opóźnienie dostarczania (zaplanowane komunikaty) |
|
Obsługiwane |
Utworzono komunikat |
|
Obsługiwane |
Transakcje między jednostkami |
|
Obsługiwane |
Transakcje rozproszone | Nieobsługiwane |
Pobieranie biblioteki klienta usługi Java Message Service (JMS)
Aby korzystać ze wszystkich funkcji dostępnych w warstwie Premium, dodaj następującą bibliotekę do ścieżki kompilacji projektu.
Uwaga
Aby dodać plik Azure-servicebus-jms do ścieżki kompilacji, użyj preferowanego narzędzia do zarządzania zależnościami dla projektu, takiego jak Maven lub Gradle.
Kodowanie aplikacji Java
Po zaimportowaniu zależności aplikacje Java można pisać w sposób niezależny od dostawcy JMS.
Nawiązywanie połączenia z Azure Service Bus przy użyciu programu JMS
Aby nawiązać połączenie z Azure Service Bus przy użyciu klientów JMS, potrzebne są parametry połączenia dostępne w obszarze Podstawowe parametry połączenia w Azure Portal obszarze "Zasady dostępu współdzielonego".
Tworzenie wystąpienia
ServiceBusJmsConnectionFactorySettings
ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connFactorySettings.setConnectionIdleTimeoutMS(20000);
ServiceBusJmsConnectionFactory
Utwórz wystąpienie przy użyciu odpowiedniegoServiceBusConnectionString
elementu .String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>"; ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
Użyj elementu
ConnectionFactory
, aby utworzyć elementConnection
, a następnieSession
Connection connection = factory.createConnection(); Session session = connection.createSession();
lub (
JMSContext
dla klientów JMS 2.0)JMSContext jmsContext = factory.createContext();
Ważne
Podobnie nazwany element JMS "Session" i Service Bus "Session" jest całkowicie niezależny od siebie.
W programie JMS 1.1 sesja jest podstawowym blokiem konstrukcyjnym interfejsu API, który umożliwia utworzenie
MessageProducer
elementu ,MessageConsumer
iMessage
samego siebie. Aby uzyskać więcej informacji, zapoznaj się z modelem programowania interfejsu API JMSW usłudze Service Bus sesje są konstrukcją po stronie usługi i klienta w celu włączenia przetwarzania FIFO w kolejkach i subskrypcjach.
Pisanie aplikacji JMS
Po utworzeniu Session
wystąpienia lub JMSContext
aplikacja może używać znanych interfejsów API JMS do wykonywania operacji zarządzania i danych. Zapoznaj się z listą obsługiwanych funkcji JMS , aby zobaczyć, które interfejsy API są obsługiwane. Poniżej przedstawiono kilka przykładowych fragmentów kodu, aby rozpocząć pracę z programem JMS —
Wysyłanie komunikatów do kolejki i tematu
// 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);
Odbieranie komunikatów z kolejki
// 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();
Odbieranie komunikatów z udostępnionej trwałej subskrypcji w temacie
// 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();
Podsumowanie
W tym przewodniku pokazano, jak aplikacje klienckie Java korzystające z usługi Java Message Service (JMS) za pośrednictwem protokołu AMQP 1.0 mogą współdziałać z Azure Service Bus.
Można również użyć usługi Service Bus AMQP 1.0 z innych języków, w tym .NET, C, Python i PHP. Składniki utworzone przy użyciu tych różnych języków mogą niezawodnie wymieniać komunikaty i w pełni wierność przy użyciu obsługi protokołu AMQP 1.0 w usłudze Service Bus.
Następne kroki
Aby uzyskać więcej informacji na temat Azure Service Bus i szczegółów dotyczących jednostek usługi Java Message Service (JMS), zapoznaj się z poniższymi linkami —
- Service Bus — kolejki, tematy i subskrypcje
- Service Bus — jednostki usługi Java Message Service
- Obsługa protokołu AMQP 1.0 w Azure Service Bus
- Przewodnik dewelopera usługi Service Bus AMQP 1.0
- Wprowadzenie do kolejek usługi Service Bus
- Interfejs API usługi komunikatów Java (zewnętrzny dokument Oracle)
- Dowiedz się, jak przeprowadzić migrację z usługi ActiveMQ do usługi Service Bus