Öğ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ı,
AppConfigurationRefreshrefreshConfigurationsyapı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ği- ücretsiz olarak bir tane oluşturun
- Sürüm 8 ile desteklenen bir Java Geliştirme Seti (JDK) .
- Apache Maven sürüm 3,0 veya üzeri.
- Mevcut bir Azure uygulama yapılandırma deposu.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Anında yenilemeyi ayarla
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>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Ö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.
Ortam değişkenini uygulama yapılandırma örneğinizin bağlantı dizesine ayarlayın:
setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>Konsol uygulamasını derlemek için aşağıdaki komutu çalıştırın:
mvn packageOluş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
Azure portal uygulama yapılandırma kaynağını açın ve bölmesinde açık ' a tıklayın
+ Event SubscriptionEvents.
Ve için bir ad girin
Event SubscriptionSystem 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.
As seçeneğini
Endpoint TypebelirleyinWeb Hook, öğesini seçinSelect an endpoint.
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=myTokenSecretCreateOlay aboneliği oluşturmak için açık ' a tıklayın. SeçildiğindeCreate, 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.Event SubscriptionsEventsAboneliğin başarıyla oluşturulduğunu doğrulayan bölmede öğesine tıklayın.
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
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:8080Azure 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 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.
- Azure Portaloturum açın ve kaynak grupları' nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Sonuç listesinde, bir genel bakışı görmek için kaynak grubu adını seçin.
- Kaynak grubunu sil'i seçin.
- 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.