Azure Service Bus Premium ile Java Message Service 2.0 API kullanma
Bu makalede, Gelişmiş İleti Kuyruğa Alma Protokolü (AMQP) 1.0 protokolü üzerinden Azure Service Bus ile etkileşime geçmek için popüler Java İleti Hizmeti (JMS) 2.0 API'sinin nasıl kullanılacağı açıklanmaktadır.
Not
Java İleti Hizmeti (JMS) 2.0 API desteği yalnızca premium katmanda kullanılabilir.>
Önkoşullar
Service Bus’ı kullanmaya başlama
Bu kılavuzda zaten bir Service Bus ad alanınız olduğu varsayılır. Aksi takdirde Azure portalını kullanarak bir ad alanı ve kuyruk oluşturun. Service Bus ad alanları ve kuyrukları oluşturma hakkında daha fazla bilgi için bkz . Azure portalı aracılığıyla Service Bus kuyruklarını kullanmaya başlama.
Java Geliştirme ortamı ayarlama
Java uygulamaları geliştirmek için uygun geliştirme ortamını ayarlamanız gerekir -
- JDK (Java Geliştirme Seti) veya JRE (Java Çalışma Zamanı Ortamı) yüklenir.
- JDK veya JRE, derleme yoluna ve uygun sistem değişkenlerine eklenir.
- JDK veya JRE kullanmak için bir Java IDE yüklenir. Örneğin, Eclipse veya IntelliJ.
Geliştirici ortamınızı Azure'da Java için hazırlama hakkında daha fazla bilgi edinmek için bu kılavuzu kullanın.
Hangi JMS özellikleri desteklenir?
Aşağıdaki tabloda, Azure Service Bus'ın şu anda desteklediği Java İleti Hizmeti (JMS) özellikleri listelenmiştir. Ayrıca desteklenmeyen özellikleri de gösterir.
Özellik | API | Durum |
---|---|---|
Kuyruklar |
|
Destekleniyor |
Konu başlıkları |
|
Destekleniyor |
Geçici kuyruklar |
|
Destekleniyor |
Geçici konular |
|
Destekleniyor |
İleti Üreticisi / JMSProducer |
|
Destekleniyor |
Kuyruk tarayıcıları |
|
Destekleniyor |
İleti Tüketicisi/ JMSConsumer |
noLocal şu anda desteklenmiyor |
Destekleniyor |
Paylaşılan dayanıklı abonelikler |
|
Destekleniyor |
Paylaşılmayan dayanıklı abonelikler |
noLocal şu anda desteklenmiyor ve false olarak ayarlanmalıdır |
Destekleniyor |
Paylaşılan dayanıklı olmayan abonelikler |
|
Destekleniyor |
Paylaşılmayan dayanıklı olmayan abonelikler |
noLocal şu anda desteklenmiyor ve false olarak ayarlanmalıdır |
Destekleniyor |
İleti seçicileri | oluşturulan tüketiciye bağlıdır | Destekleniyor |
Teslim Gecikmesi (zamanlanmış iletiler) |
|
Destekleniyor |
İleti oluşturuldu |
|
Destekleniyor |
Çapraz varlık işlemleri |
|
Destekleniyor |
Dağıtılmış işlemler | Desteklenmez |
Java İleti Hizmeti (JMS) istemci kitaplığını indirme
Premium katmanda sağlanan tüm özellikleri kullanmak için projenin derleme yoluna şu kitaplığı ekleyin: azure-servicebus-jms. Bu paket, ilke öncesi değerler, yeniden bağlanma ilkeleri, Microsoft Entra Id ve Yönetilen Kimlik desteği gibi bazı gerekli varsayılanları kullanıma hazır olarak sağlar.
Not
Derleme yoluna azure-servicebus-jms eklemek için Maven veya Gradle gibi projeniz için tercih edilen bağımlılık yönetimi aracını kullanın.
Java uygulamalarını kodlama
Bağımlılıklar içeri aktarıldıktan sonra Java uygulamaları JMS sağlayıcısından bağımsız bir şekilde yazılabilir.
JMS kullanarak Azure Service Bus'a bağlanma
JMS istemcilerini kullanarak Azure Service Bus'a bağlanmak için, Birincil Bağlantı Dizesi altındaki Azure portalındaki 'Paylaşılan Erişim İlkeleri'nde bulunan bağlantı dizesi gerekir.
Örneği oluşturma
ServiceBusJmsConnectionFactorySettings
ServiceBusJmsConnectionFactorySettings connFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connFactorySettings.setConnectionIdleTimeoutMS(20000);
ServiceBusJmsConnectionFactory
uygun ileServiceBusConnectionString
örneği oluşturma.String ServiceBusConnectionString = "<SERVICE_BUS_CONNECTION_STRING_WITH_MANAGE_PERMISSIONS>"; ConnectionFactory factory = new ServiceBusJmsConnectionFactory(ServiceBusConnectionString, connFactorySettings);
ConnectionFactory
öğesini kullanarak birConnection
ve sonra daSession
Connection connection = factory.createConnection(); Session session = connection.createSession();
veya a
JMSContext
(JMS 2.0 istemcileri için)JMSContext jmsContext = factory.createContext();
Önemli
Benzer şekilde adlandırılmış olsa da JMS 'Session' ve Service Bus 'Session' birbirinden tamamen bağımsızdır.
JMS 1.1'de Session, API'nin ,
MessageConsumer
veMessage
kendisinin oluşturulmasınaMessageProducer
olanak tanıyan önemli bir yapı taşıdır. Daha fazla ayrıntı için JMS API programlama modelini gözden geçirinService Bus'ta oturumlar, kuyruklarda ve aboneliklerde FIFO işlemeyi etkinleştirmek için hizmet ve istemci tarafı yapısıdır.
JMS uygulamasını yazma
Session
veya JMSContext
örneği oluşturulduktan sonra, uygulamanız hem yönetim hem de veri işlemlerini gerçekleştirmek için tanıdık JMS API'lerini kullanabilir. Hangi API'lerin desteklendiğine bakmak için desteklenen JMS özelliklerinin listesine bakın. JMS'yi kullanmaya başlamak için bazı örnek kod parçacıkları aşağıda verilmiştir:
Kuyruğa ve konuya ileti gönderme
// 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);
Kuyruktan ileti alma
// 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();
Bir konudaki paylaşılan dayanıklı abonelikten ileti alma
// 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();
Özet
Bu kılavuzda, AMQP 1.0 üzerinden Java İleti Hizmeti (JMS) kullanan Java istemci uygulamalarının Azure Service Bus ile nasıl etkileşim kurabileceği gösterildi.
Service Bus AMQP 1.0'ı .NET, C, Python ve PHP gibi diğer dillerde de kullanabilirsiniz. Bu farklı diller kullanılarak oluşturulan bileşenler, Service Bus'taki AMQP 1.0 desteğini kullanarak güvenilir ve tam uygunlukta ileti alışverişi yapabilir.