Menggunakan Java Message Service 2.0 API dengan Azure Service Bus Premium
Artikel ini menjelaskan cara menggunakan API Java Message Service (JMS) 2.0 populer untuk berinteraksi dengan Azure Bus Layanan melalui protokol Advanced Message Queueing Protocol (AMQP) 1.0.
Catatan
Dukungan untuk JAVA Message Service (JMS) 2.0 API hanya tersedia di tingkat premium.>
Prasyarat
Memulai Service Bus
Panduan ini mengasumsikan bahwa Anda sudah memiliki ruang nama Azure Service Bus. Jika tidak, buat namespace layanan dan antrean menggunakan portal Azure. Untuk informasi selengkapnya tentang cara membuat ruang nama dan antrean Service Bus, lihat Mulai menggunakan dengan antrean Service Bus melalui portal Microsoft Azure.
Menyiapkan lingkungan Pengembangan Java
Untuk mengembangkan aplikasi Java, Anda perlu mengatur lingkungan pengembangan yang sesuai -
- Baik JDK (Java Development Kit) atau JRE (Java Runtime Environment) dipasang.
- JDK atau JRE ditambahkan ke jalur build dan variabel sistem yang sesuai.
- Java IDE dipasang untuk menggunakan JDK atau JRE. Misalnya, Eclipse atau IntelliJ.
Untuk mempelajari lebih lanjut cara menyiapkan lingkungan pengembang untuk Java di Azure, gunakan panduan ini.
Fitur JMS apa yang didukung?
Tabel berikut mencantumkan fitur Java Message Service (JMS) yang saat ini didukung oleh Azure Service Bus. Ini juga menunjukkan fitur yang tidak didukung.
Fitur | API | Status |
---|---|---|
Antrean |
|
Didukung |
Topik |
|
Didukung |
Antrean sementara |
|
Didukung |
Topik sementara |
|
Didukung |
Produser Pesan / JMSProducer |
|
Didukung |
Antrean browser |
|
Didukung |
Konsumen Pesan/ JMSConsumer |
noLocal saat ini tidak didukung |
Didukung |
Langganan bersama yang tahan lama |
|
Didukung |
Langganan privat yang tahan lama |
noLocal saat ini tidak didukung dan harus diatur ke false |
Didukung |
Langganan bersama yang tidak tahan lama |
|
Didukung |
Langganan privat yang tidak tahan lama |
noLocal saat ini tidak didukung dan harus diatur ke false |
Didukung |
Pemilih pesan | tergantung pada konsumen yang dibuat | Didukung |
Penundaan Pengiriman (pesan terjadwal) |
|
Didukung |
Pesan dibuat |
|
Didukung |
Transaksi lintas entitas |
|
Didukung |
Transaksi terdistribusi | Tidak didukung |
Mengunduh pustaka klien Java Message Service (JMS)
Untuk menggunakan semua fitur yang tersedia di tingkat premium, tambahkan pustaka berikut ke jalur build proyek: azure-servicebus-jms. Paket ini menyediakan beberapa default yang diperlukan seperti nilai kebijakan prefetch, kebijakan koneksi ulang, ID Microsoft Entra, dan dukungan Identitas Terkelola di luar kotak.
Catatan
Untuk menambahkan azure-servicebus-jms ke jalur build, gunakan alat manajemen dependensi pilihan untuk proyek Anda seperti Maven atau Gradle.
Aplikasi Coding Java
Setelah dependensi diimpor, aplikasi Java dapat ditulis dengan cara agnostik penyedia JMS.
Menghubungkan ke Azure Service Bus menggunakan JMS
Untuk terhubung dengan Azure Service Bus menggunakan klien JMS, Anda memerlukan string koneksi yang tersedia di 'Kebijakan Akses Bersama' di bagian portal Microsoft Azure di String Koneksi Utama.
Menggunakan
ServiceBusJmsConnectionFactorySettings
ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connFactorySettings.setConnectionIdleTimeoutMS(20000);
Gunakan
ServiceBusJmsConnectionFactory
denganServiceBusConnectionString
yang sesuai.String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>"; ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
Gunakan
ConnectionFactory
untuk membuatConnection
dan kemudianSession
Connection connection = factory.createConnection(); Session session = connection.createSession();
atau
JMSContext
a (untuk klien JMS 2.0)JMSContext jmsContext = factory.createContext();
Penting
Meskipun dinamai serupa, 'Sesi' JMS dan 'Sesi' Azure Service Bus benar-benar independen satu sama lain.
Dalam JMS 1.1, Sesi adalah blok penyusun penting dari API yang memungkinkan pembuatan
MessageProducer
,MessageConsumer
, dan ituMessage
sendiri. Untuk detail selengkapnya, tinjau model pemrograman JMS APIDalam Bus Layanan, sesi adalah konstruksi sisi layanan dan klien untuk memungkinkan pemrosesan FIFO pada antrean dan langganan.
Menulis aplikasi JMS
Session
Setelah atau JMSContext
dibuat, aplikasi Anda dapat menggunakan API JMS yang sudah dikenal untuk melakukan operasi manajemen dan data. Lihat daftar fitur JMS yang didukung untuk melihat API yang didukung. Berikut adalah beberapa cuplikan kode sampel untuk mulai menggunakan JMS -
Mengirim pesan ke antrean dan topik
// 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);
Menerima pesan dari antrean
// 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();
Menerima pesan dari langganan bersama yang tahan lama pada topik
// 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();
Ringkasan
Panduan developer ini memperlihatkan bagaimana aplikasi klien Java yang menggunakan Java Message Service (JMS) melalui AMQP 1.0 dapat berinteraksi dengan Azure Service Bus.
Anda juga dapat menggunakan Azure Service Bus AMQP 1.0 dari bahasa pemrogram lain, seperti .NET, C, Python, dan PHP. Komponen yang dibuat dengan menggunakan bahasa pemrogram yang berbeda ini dapat bertukar pesan dengan andal dan dengan ketepatan tinggi menggunakan dukungan AMQP 1.0 di Azure Service Bus.