Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, Service Bus queues ve topics mesajlarını göndermek ve almak üzere Azure Service Bus JMS için Spring Boot Starter'ın nasıl kullanılacağı gösterilmektedir.
Azure Azure Service Bus ("Service Bus") adlı ve Gelişimli İleti Kuyruğa Alma Protokolü 1.0 ("AMQP 1.0") standardını temel alan zaman uyumsuz bir mesajlaşma platformu sağlar. desteklenen Azure platformları aralığında Service Bus kullanabilirsiniz.
Azure Service Bus JMS için Spring Boot Starter, Service Bus ile Spring JMS tümleştirmesi sağlar.
Aşağıdaki videoda Spring JMS uygulamalarını JMS 2.0 kullanarak Azure Service Bus ile tümleştirme açıklanmaktadır.
Bu öğreticide iki kimlik doğrulama yöntemi ekleyeceğiz: Microsoft Entra authentication ve Shared Access Signatures (SAS) authentication. Passwordless sekmesi Microsoft Entra kimlik doğrulamasını gösterir ve Connection dizesi sekmesi SAS kimlik doğrulamasını gösterir.
Microsoft Entra kimlik doğrulaması, Microsoft Entra ID tanımlanan kimlikleri kullanarak Azure Service Bus JMS'ye bağlanmaya yönelik bir mekanizmadır. Microsoft Entra kimlik doğrulamasıyla, veritabanı kullanıcı kimliklerini ve diğer Microsoft hizmetleri merkezi bir konumda yönetebilirsiniz ve bu da izin yönetimini basitleştirir.
SAS kimlik doğrulaması, Service Bus JMS'ye yetkilendirilmiş erişim için Azure Service Bus ad alanınızın bağlantı dizesini kullanır. Paylaşılan Erişim İmzalarını kimlik bilgileri olarak kullanmayı seçerseniz, bağlantı dizgesini kendiniz yönetmeniz gerekir.
Önkoşullar
Azure aboneliği - ücretsiz bir abonelik .
Java Geliştirme Seti (JDK) sürüm 8 veya üzeri.
Apache Maven, sürüm 3.2 veya üzeri.
Azure Service Bus için bir kuyruk veya konu başlığı. Eğer yoksa bkz. Service Bus ad alanı ve kuyruk oluşturmak için Azure portalını kullanma veya Service Bus konusu ve konuya abonelikler oluşturmak için Azure portalını kullanma.
Spring Boot uygulaması. Eğer bir tane yoksa, Spring Initializr ile bir Maven projesi oluşturun. Maven Project öğesini seçtiğinizden emin olun ve Dependencies altında Spring Web bağımlılığını ekleyin ve ardından Java sürüm 8 veya üzerini seçin.
Önemli
Bu öğreticideki adımları tamamlamak için Spring Boot sürüm 2.5 veya üzeri gereklidir.
Azure Service Bus üzerinden mesaj gönderme ve alma
Azure Service Bus için bir kuyruk veya konu başlığıyla, Spring Cloud Azure Service Bus JMS kullanarak ileti gönderip alabilirsiniz.
Spring Cloud Azure Service Bus JMS Starter modülünü yüklemek için pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring Cloud Azure Ürün Reçetesi( BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.2.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Not
Spring Boot 4.0.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü7.2.0olarak ayarladığınızdan emin olun.Spring Boot 3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü6.2.0olarak ayarladığınızdan emin olun.Spring Boot 3.1.x-3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü5.25.0olarak ayarladığınızdan emin olun.Eğer Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü4.20.0olarak ayarladığınızdan emin olun.Bu Parça Listesi (BOM),
<dependencyManagement>bölümünde pom.xml dosyanızda yapılandırılmalıdır. Bu, tüm Spring Cloud Azure bağımlılıklarının aynı sürümü kullanmasını sağlar.Bu ürün reçetesi için kullanılan sürüm hakkında daha fazla bilgi için bkz: Hangi Spring Cloud Azure Sürümünü Kullanmalıyım.
Spring Cloud Azure Service Bus JMS Starter bileşeni:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId> </dependency>
Uygulamayı kodlama
Uygulamanızı ileti göndermek ve almak için bir Service Bus kuyruğu veya konu başlığı kullanacak şekilde yapılandırmak için aşağıdaki adımları kullanın.
application.properties dosyanıza aşağıdaki özellikleri ekleyerek Service Bus kimlik bilgilerini yapılandırın.
Not
Azure Service Bus JMS, Service Bus kaynaklarına yönelik istekleri yetkilendirmek için Microsoft Entra ID kullanmayı destekler. Microsoft Entra ID ile Azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak, bir kullanıcı veya uygulama hizmet sorumlusu olabilecek bir güvenlik ilkesine izinler verebilirsiniz.
Önemli
Başlamadan önce, kullanmakta olduğunuz Microsoft Entra hesabına Azure Service Bus Veri Sahibi rolünü atadığınızdan emin olun. Daha fazla bilgi için bkz. Azure portalını kullanarak Azure rolleri atama.
spring.jms.servicebus.namespace=<ServiceBusNamespace> spring.jms.servicebus.pricing-tier=<ServiceBusPricingTier> spring.jms.servicebus.passwordless-enabled=true spring.jms.listener.receive-timeout=60000Aşağıdaki tabloda yapılandırmadaki alanlar açıklanmaktadır:
Alan Açıklama spring.jms.servicebus.namespaceAzure portalından Service Bus hizmet örneğinizde aldığınız ad alanını belirtin. spring.jms.servicebus.pricing-tierService Bus'ınızın fiyatlandırma katmanını belirtin. Desteklenen değerler premiumvestandard. Premium katman Java İleti Hizmeti (JMS) 2.0'ı kullanırken standart katmanda Azure Service Bus ile etkileşime geçmek için JMS 1.1 kullanılır.spring.jms.servicebus.passwordless-enabledParolasız oturum açmayı belirtin. spring.jms.listener.receive-timeoutVarsayılan olarak alma zaman aşımı değeri 1000'dir. 60000 olarak ayarlamanızı öneririz JMS dinleyici ek açıklamalı uç noktalar desteğini etkinleştirmek için
@EnableJmsekleyin. Aşağıdaki örnekte gösterildiği gibi, mesajları göndermek içinJmsTemplateve almak için@JmsListenerkullanın.import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.jms.annotation.EnableJms; import org.springframework.boot.CommandLineRunner; import org.springframework.jms.annotation.JmsListener; import org.springframework.jms.core.JmsTemplate; @SpringBootApplication @EnableJms public class ServiceBusJMSQueueApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(ServiceBusJMSQueueApplication.class); private static final String QUEUE_NAME = "<QueueName>"; @Autowired private JmsTemplate jmsTemplate; public static void main(String[] args) { SpringApplication.run(ServiceBusJMSQueueApplication.class, args); } @Override public void run(String... args) { LOGGER.info("Sending message"); jmsTemplate.convertAndSend(QUEUE_NAME, "Hello World"); } @JmsListener(destination = QUEUE_NAME, containerFactory = "jmsListenerContainerFactory") public void receiveMessage(String message) { LOGGER.info("Message received: {}", message); } }<QueueName>değerini Service Bus ad alanınızda yapılandırılan kendi kuyruk adınızla değiştirin.İpucu
Bu öğreticide yapılandırmalarda veya kodda kimlik doğrulama işlemi yoktur. Ancak, Azure hizmetlerine bağlanmak için kimlik doğrulaması gerekir. Kimlik doğrulamasını tamamlamak için Azure Identity kullanmanız gerekir. Spring Cloud Azure, Azure Kimlik kitaplığının herhangi bir kod değişikliği yapmadan kimlik bilgilerini almanıza yardımcı olmak için sağladığı
DefaultAzureCredentialkullanır.DefaultAzureCredentialbirden çok kimlik doğrulama yöntemini destekler ve çalışma zamanında hangi yöntemin kullanılacağını belirler. Bu yaklaşım, uygulamanızın ortama özgü kod uygulamadan farklı ortamlarda (yerel ve üretim ortamları gibi) farklı kimlik doğrulama yöntemleri kullanmasını sağlar. Daha fazla bilgi için bkz. DefaultAzureCredential.Yerel geliştirme ortamlarında kimlik doğrulamasını tamamlamak için Azure CLI, Visual Studio Code, PowerShell veya diğer yöntemleri kullanabilirsiniz. Daha fazla bilgi için bkz. Java geliştirme ortamlarında Azure kimlik doğrulaması. Azure barındırma ortamlarında kimlik doğrulamasını tamamlamak için kullanıcı tarafından atanan yönetilen kimliği kullanmanızı öneririz. Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler nelerdir?
Uygulamayı başlatın. Aşağıdaki örnek çıktıda gösterildiği gibi uygulama günlüğünüzde
Sending messageveMerhaba Dünya'nin yayınlanmış olduğunu görmeniz gerekir:Sending message Message received: Hello World
Azure Spring Apps'e dağıtım yapma
Spring Boot uygulamasını yerel olarak çalıştırdığınıza göre artık uygulamayı üretim ortamına taşımanın zamanı geldi. Azure Spring Apps Spring Boot uygulamalarını kod değişikliği olmadan Azure dağıtmayı kolaylaştırır. Hizmet, geliştiricilerin kodlarına odaklanabilmesi için Spring uygulamalarının altyapısını yönetir. Azure Spring Apps kapsamlı izleme ve tanılama, yapılandırma yönetimi, hizmet bulma, CI/CD tümleştirmesi, mavi-yeşil dağıtımlar ve daha fazlasını kullanarak yaşam döngüsü yönetimi sağlar. Uygulamanızı Azure Spring Apps dağıtmak için bkz. İlk uygulamanızı Azure Spring Apps'a dağıtma.
Sonraki adımlar
Spring geliştiricileri için AzureSpring Cloud Azure Service Bus JMS Örnekleri