Öğretici: bir Java Spring uygulamasında anında yenileme kullanarak dinamik yapılandırma kullanma

Uygulama yapılandırması Java yay istemci kitaplığı, bir uygulamanın yeniden başlatılmasına neden olmadan isteğe bağlı yapılandırmayı güncelleştirmeyi destekler. Bir uygulama, aşağıdaki iki yaklaşımdan birini veya her ikisini kullanarak uygulama yapılandırmasındaki değişiklikleri algılamak üzere yapılandırılabilir.

  • Yoklama modeli: Bu, yapılandırmadaki değişiklikleri algılamak için yoklama kullanan varsayılan davranıştır. Bir ayarın önbelleğe alınmış değeri sona erdiğinde, bir sonraki çağrısı, AppConfigurationRefresh refreshConfigurations yapılandırmanın değiştirilip değiştirilmediğini denetlemek için sunucuya bir istek gönderir ve gerekirse güncelleştirilmiş yapılandırmayı çeker.

  • Gönderim modeli: Bu, yapılandırmadaki değişiklikleri algılamak için uygulama yapılandırma olaylarını kullanır. Uygulama yapılandırması, Event Grid ile anahtar değer değişikliği olayları gönderecek şekilde ayarlandıktan sonra, bir Web kancasıile uygulama, yapılandırmanın güncelleştirilmesini sağlamak için gereken toplam istek sayısını iyileştirmek üzere bu olayları kullanabilir.

Bu öğreticide, anında yenileme kullanarak kodunuzda dinamik yapılandırma güncelleştirmelerini nasıl uygulayabileceğinizi gösterilmektedir. Hızlı başlangıçlarda tanıtılan uygulamada oluşturulur. Devam etmeden önce, önce uygulama yapılandırmasıyla bir Java Spring uygulaması oluşturun .

Bu öğreticideki adımları uygulamak için herhangi bir kod düzenleyicisi kullanabilirsiniz. Visual Studio Code , Windows, macos ve Linux platformlarında kullanılabilen harika bir seçenektir.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Yapılandırma değişikliği olaylarını uygulama yapılandırmasından bir Web kancası 'na göndermek için bir abonelik ayarlama
  • App Service için bir Spring Boot uygulaması dağıtma
  • Uygulama yapılandırmasındaki değişikliklere yanıt olarak yapılandırmasını güncelleştirmek için Java Spring uygulamanızı ayarlayın.
  • Uygulamanızdaki en son yapılandırmayı tükettin.

Önkoşullar

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Anında yenilemeyi ayarla

  1. pom.xml açın ve dosyayı aşağıdaki bağımlılıklarla güncelleştirin.

            <dependency>
                <groupId>com.azure.spring</groupId>
                <artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId>
                <version>2.0.0</version>
            </dependency>
    
            <!-- Adds the Ability to Push Refresh -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
  2. Maven App Service dağıtımını , uygulamanın Maven aracılığıyla Azure App Service dağıtılabilmesi için ayarlayın.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
    
  3. Önyükleme. Özellikler 'i açın ve Azure uygulama yapılandırma anında yenilemeyi ve Azure Service Bus yapılandırın

    # Azure App Configuration Properties
    spring.cloud.azure.appconfiguration.stores[0].connection-string= ${AppConfigurationConnectionString}
    spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled= true
    spring.cloud.azure.appconfiguration.stores[0].monitoring.cacheExpiration= 30d
    spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key= sentinel
    spring.cloud.azure.appconfiguration.stores[0].monitoring.push-notification.primary-token.name= myToken
    spring.cloud.azure.appconfiguration.stores[0].monitoring.push-notification.primary-token.secret= myTokenSecret
    
    management.endpoints.web.exposure.include= "appconfiguration-refresh"
    

Önbellek değeri, olası azaltmayı azaltmak için kirli olarak işaretlenmeden önce rastgele bir gecikme eklenir. Önbelleğe alınan değer kirli olarak işaretlenmeden önce varsayılan en fazla gecikme 30 saniyedir.

Not

Birincil belirtecin adı, uygulama yapılandırmasında anahtar olarak depolanmalıdır ve ardından birincil belirteç gizli anahtarı, ek güvenlik için bir uygulama yapılandırması Key Vault başvuru olarak depolanır.

Uygulamayı yerel olarak derleyin ve çalıştırın

Event Grid Web kancaları oluşturma sırasında doğrulama gerektirir. Bu Kılavuzu izleyerek veya uygulamanızı, önceden yapılandırılmış Azure Uygulama yapılandırması Spring Web kitaplığı ile başlatarak, uygulamanızı sizin için kaydeden şekilde doğrulayabilirsiniz. Bir olay aboneliği kullanmak için sonraki iki bölümde bulunan adımları izleyin.

  1. Ortam değişkenini uygulama yapılandırma örneğinizin bağlantı dizesine ayarlayın:

    setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>
    
  2. Konsol uygulamasını derlemek için aşağıdaki komutu çalıştırın:

     mvn package
    
  3. Oluşturma başarıyla tamamlandıktan sonra, uygulamayı yerel olarak çalıştırmak için aşağıdaki komutu çalıştırın:

    mvn spring-boot:deploy
    

Olay aboneliği ayarlama

  1. Azure portal uygulama yapılandırma kaynağını açın ve bölmesinde açık ' a tıklayın + Event Subscription Events .

    Olaylar bölmesinde yeni abonelikler oluşturma seçeneği vardır.

  2. Ve için bir ad girin Event Subscription System Topic . Varsayılan olarak, Key-Value değiştirilen ve silinen Key-Value olay türleri ayarlanır; Bu, anında Iletme olayının gönderileceği nedenleri tam olarak seçmek için filtreler sekmesi kullanılarak birlikte değiştirilebilir.

    Olaylar bir ad, konu ve filtre gerektirir.

  3. As seçeneğini Endpoint Type belirleyin Web Hook , öğesini seçin Select an endpoint .

    Uç nokta seçme, uç nokta URI 'sini girmek için yeni bir dikey pencere oluşturur.

  4. Uç nokta, uygulamanın URI 'sidir + "/gurator/appconfiguration-Refresh? {-Token-Name} = {-Token-Secret} ". Örneğin https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecret

  5. CreateOlay aboneliği oluşturmak için açık ' a tıklayın. Seçildiğinde Create , uygulamanıza Web kancası için bir kayıt isteği gönderilir. Bu, Azure uygulama yapılandırma istemci kitaplığı tarafından alınır, doğrulanır ve geçerli bir yanıt döndürür.

  6. Event Subscriptions Events Aboneliğin başarıyla oluşturulduğunu doğrulayan bölmede öğesine tıklayın.

    Web kancası sayfanın en altındaki tabloda görüntülenir.

Not

Yapılandırma değişiklikleri için abone olurken, uygulamanıza gönderilen olay sayısını azaltmak için bir veya daha fazla filtre kullanılabilir. bunlar, Event Grid abonelik filtreleri veya Service Bus abonelik filtreleriolarak yapılandırılabilir. Örneğin, bir abonelik filtresi yalnızca belirli bir dizeyle başlayan bir anahtardaki değişikliklere yönelik olaylara abone olmak için kullanılabilir.

Uygulamayı doğrulama ve test etme

  1. Uygulamanız çalıştırıldıktan sonra, uygulamanızı test etmek için kıvrımlı kullanın, örneğin:

    curl -X GET http://localhost:8080
    
  2. Azure portalını açın ve uygulamanızla Ilişkili uygulama yapılandırma kaynağına gidin. İşlemler altında yapılandırma Gezgini ' ni seçin ve aşağıdaki anahtarların değerlerini güncelleştirin:

    Anahtar Değer
    uygulama/yapılandırma. ileti Merhaba-güncelleştirildi
  3. Yeni iletinin görüntülendiğini görmek için tarayıcı sayfasını yenileyin.

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız, ücretlendirmemek için burada oluşturduğunuz kaynak grubunu silin.

Önemli

Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makaleye ait kaynakları tutmak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden ayrı ayrı silin.

  1. Azure Portaloturum açın ve kaynak grupları' nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Sonuç listesinde, bir genel bakışı görmek için kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil' i seçin.

Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.

Sonraki adımlar

Bu öğreticide, uygulama yapılandırmasından yapılandırma ayarlarını dinamik olarak yenilemek için Java uygulamanızı etkinleştirdiniz. Azure yönetilen kimliğin uygulama yapılandırmasına erişimi kolaylaştırmak için nasıl kullanılacağını öğrenmek için bir sonraki öğreticiye geçin.