Java ileti hizmeti (JMS) 2.0 varlıkları

Azure Service Bus Premium'a bağlanan ve Azure Service Bus JMS kitaplığını kullanan istemci uygulamaları aşağıdaki varlıkları kullanabilir.

Kuyruklar

JMS'deki kuyruklar geleneksel Service Bus kuyruklarıyla benzerdir.

Kuyruk oluşturmak için sınıfında aşağıdaki yöntemleri JMSContext kullanın -

Queue createQueue(String queueName)

Konu başlıkları

JMS'deki konular geleneksel Service Bus konularıyla benzerdir.

Konu oluşturmak için sınıfında aşağıdaki yöntemleri JMSContext kullanın -

Topic createTopic(String topicName)

Geçici kuyruklar

bir istemci uygulaması, uygulamanın ömrü boyunca var olan geçici bir varlık gerektiriyorsa, Geçici kuyrukları kullanabilir. Bu varlıklar İstek-Yanıt düzeninde kullanılır.

Geçici bir kuyruk oluşturmak için sınıfında aşağıdaki yöntemleri JMSContext kullanın -

TemporaryQueue createTemporaryQueue()

Geçici konular

Geçici Kuyruklar gibi, uygulamanın ömrü boyunca var olan geçici bir varlık aracılığıyla yayımlamayı/abone olmayı etkinleştirmek için Geçici Konular da vardır.

Geçici bir konu oluşturmak için sınıfında aşağıdaki yöntemleri JMSContext kullanın -

TemporaryTopic createTemporaryTopic()

Java ileti hizmeti (JMS) abonelikleri

Bunlar Diğer bir deyişle Abonelikler'e benzer olsa da (başka bir deyişle, bir konuda var olup yayımlama/abone olma semantiğini etkinleştirme), Java İleti Hizmeti belirtimi belirli bir abonelik için Paylaşılan, Paylaşılmayan, **Dayanıklı ve Dayanıklı olmayan öznitelikler kavramlarını tanıtır.

Not

Aşağıdaki abonelikler, Azure Service Bus JMS kitaplığını kullanarak Azure Service Bus bağlanan istemci uygulamaları için Azure Service Bus Premium katmanında kullanılabilir.

yalnızca dayanıklı abonelikler Azure portal kullanılarak oluşturulabilir.

Paylaşılan dayanıklı abonelikler

Paylaşılan dayanıklı abonelik, bir konuda yayımlanan tüm iletiler, uygulamanın abonelikten sürekli olarak kullanılıp kullanılmadığına bakılmaksızın uygulama tarafından alınıp işlendiğinde kullanılır.

Service Bus'tan almak için kimliği doğrulanmış tüm uygulamalar paylaşılan dayanıklı abonelikten alabilir.

Paylaşılan dayanıklı abonelik oluşturmak için sınıfında aşağıdaki yöntemleri JMSContext kullanın -

JMSConsumer createSharedDurableConsumer(Topic topic, String name)

JMSConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector)

Paylaşılan dayanıklı abonelik, sınıfındaki unsubscribeJMSContext yöntemi kullanılarak silinmediği sürece varolmaya devam eder.

void unsubscribe(String name)

Paylaşılmayan dayanıklı abonelikler

Paylaşılan dayanıklı abonelik gibi, bir konuda yayımlanan tüm iletiler, uygulamanın abonelikten etkin bir şekilde kullanıp kullanmadığına bakılmaksızın uygulama tarafından alınıp işlendiğinde paylaşılmayan dayanıklı abonelik kullanılır.

Ancak, bu paylaşılmayan bir abonelik olduğundan, yalnızca aboneliği oluşturan uygulama abonelikten alabilir.

Paylaşılmayan dayanıklı abonelik oluşturmak için sınıfından aşağıdaki yöntemleri JMSContext kullanın :

JMSConsumer createDurableConsumer(Topic topic, String name)

JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal)

Not

Özellik noLocal şu anda desteklenmiyor ve yoksayılıyor.

Sınıfındaki yöntemi JMSContext kullanılarak silinmediği sürece paylaşılmayan unsubscribe dayanıklı abonelik varolmaya devam eder.

void unsubscribe(String name)

Paylaşılan dayanıklı olmayan abonelikler

Paylaşılan dayanıklı olmayan abonelik, birden çok istemci uygulamanın tek bir abonelikten ileti alması ve işlemesi gerektiğinde, yalnızca etkin olarak tüketilene/alınana kadar kullanılır.

Abonelik dayanıklı olmadığından kalıcı olmaz. Bu abonelikte etkin tüketici olmadığında iletiler alınmaz.

Paylaşılan dayanıklı olmayan bir abonelik oluşturmak için sınıfından aşağıdaki yöntemlerde JMSContext gösterildiği gibi bir JmsConsumer oluşturun -

JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName)

JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector)

Paylaşılan dayanıklı olmayan abonelik, aboneliği alan etkin tüketiciler olana kadar varolmaya devam eder.

Paylaşılmayan dayanıklı olmayan abonelikler

İstemci uygulamasının bir abonelikten ileti alması ve işlemesi gerektiğinde, yalnızca abonelikten etkin olarak tüketilene kadar paylaşılmayan dayanıklı olmayan bir abonelik kullanılır. Bu abonelikte yalnızca bir tüketici, yani aboneliği oluşturan istemci bulunabilir.

Abonelik dayanıklı olmadığından kalıcı olmaz. Bu abonelikte etkin tüketici olmadığında iletiler alınmaz.

Paylaşılmayan dayanıklı olmayan bir abonelik oluşturmak için sınıfından aşağıdaki yöntemlerde JMSContext gösterildiği gibi bir JMSConsumer oluşturun -

JMSConsumer createConsumer(Destination destination)

JMSConsumer createConsumer(Destination destination, String messageSelector)

JMSConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal)

Not

Özellik noLocal şu anda desteklenmiyor ve yoksayılıyor.

Paylaşılmayan dayanıklı olmayan abonelik, bu abonelikten alan etkin bir tüketici olana kadar varolmaya devam eder.

İleti seçicileri

Normal Service Bus aboneliklerinde filtreler ve eylemler olduğu gibi JMS Abonelikleri için de İleti Seçiciler vardır.

İleti seçicileri JMS aboneliklerinin her birinde ayarlanabilir ve ileti üst bilgisi özelliklerinde filtre koşulu olarak bulunabilir. Yalnızca ileti seçici ifadesiyle eşleşen üst bilgi özelliklerine sahip iletiler teslim edilir. null veya boş dize değeri, JMS Aboneliği/Tüketicisi için ileti seçici olmadığını gösterir.

Java İleti Hizmeti (JMS) 2.0 abonelikleri için ek kavramlar

İstemci kapsamı

Java İleti Hizmeti (JMS) 2.0 API'sinde belirtildiği gibi aboneliklerin kapsamı belirli istemci uygulama/uygulamalarıyla (uygun clientIdile tanımlanır) belirlenebilir veya olmayabilir.

Aboneliğin kapsamı belirlenmişse, yalnızca aynı istemci kimliğine sahip istemci uygulamalarından erişilebilir .

Başka bir istemci kimliğine (örneğin clientId2) sahip bir uygulamadan belirli bir istemci kimliği (örneğin clientId1) kapsamındaki bir aboneliğe erişme girişimleri, kapsamı diğer istemci kimliği (clientId2) olan başka bir aboneliğin oluşturulmasına yol açar.

Not

İstemci kimliği null veya boş olabilir, ancak JMS istemci uygulamasında ayarlanan istemci kimliğiyle eşleşmesi gerekir. Azure Service Bus perspektifinden bakıldığında, null istemci kimliği ve boş istemci kimliği aynı davranışa sahiptir.

İstemci kimliği null veya boş olarak ayarlanırsa, yalnızca istemci kimliği null veya boş olarak ayarlanmış istemci uygulamaları tarafından erişilebilir.

Paylaşılabilirlik

Paylaşılan abonelikler birden çok istemci/tüketicinin (JMSConsumer nesneleri) onlardan ileti almasına izin verir.

Not

Belirli bir istemci kimliği kapsamındaki paylaşılan aboneliklere yine birden çok istemci/tüketici (JMSConsumer nesneleri) tarafından erişilebilir, ancak istemci uygulamalarının her biri aynı istemci kimliğine sahip olmalıdır.

Paylaşılmayan abonelikler yalnızca tek bir istemcinin/tüketicinin (JMSConsumer nesnesi) onlardan ileti almasına izin verir. Zaten JMSConsumer üzerinde iletileri dinleyen etkin JMSConsumer bir abonelik varken paylaşılmayan bir abonelikte oluşturulduysa, bir JMSException oluşturulur.

Dayanıklılık

Kalıcı abonelikler kalıcıdır ve bir uygulamanın (JMSConsumer) ileti kullanıp kullanmadığına bakılmaksızın konu başlığından ileti toplamaya devam eder.

Dayanıklı olmayan abonelikler kalıcı değildir ve uygulama (JMSConsumer) bu abonelikten iletileri tüketiyor olduğu sürece konu başlığından iletiler toplar.

İstemci kapsamlı aboneliklerin gösterimi

İstemci kapsamı belirlenmiş (JMS) aboneliklerinin mevcut aboneliklerle birlikte mevcut olması gerektiği düşünüldüğünde, istemci kapsamı belirlenmiş (JMS) aboneliklerinin temsili aşağıdaki biçime uyar.

  • <SUBSCRIPTION-NAME>$<CLIENT-ID>$D (dayanıklı abonelikler için)
  • <SUBSCRIPTION-NAME>$<CLIENT-ID>$ND (dayanıklı olmayan abonelikler için)

İşte sınırlayıcı $ .

Sonraki adımlar

Service Bus mesajlaşmasını kullanma hakkında daha fazla bilgi ve örnek için aşağıdaki gelişmiş konulara bakın: