Öğretici: Java Spring uygulamasında anında iletme yenileme kullanarak dinamik yapılandırma kullanma
Uygulama Yapılandırması Java Spring istemci kitaplığı, bir uygulamanın yeniden başlatılmasına neden olmadan yapılandırmanın isteğe bağlı olarak güncelleştirilmesini destekler. Bir uygulama, aşağıdaki iki yaklaşımdan biri veya her ikisi kullanılarak Uygulama Yapılandırması değişiklikleri algılamak için 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 erdikten sonra sonraki çağrısı
AppConfigurationRefresh
refreshConfigurations
, yapılandırmanın değişip değişmediğini denetlemek için sunucuya bir istek gönderir ve gerekirse güncelleştirilmiş yapılandırmayı çeker.Gönderme Modeli: Bu, yapılandırmadaki değişiklikleri algılamak için Uygulama Yapılandırması olayları kullanır. Uygulama Yapılandırması, Web Kancası ile Event Grid ile anahtar değer değişikliği olaylarını gönderecek şekilde ayarlandıktan sonra, uygulama yapılandırmayı güncel tutmak için gereken toplam istek sayısını iyileştirmek için bu olayları kullanabilir.
Bu öğreticide, anında yenilemeyi kullanarak kodunuzda dinamik yapılandırma güncelleştirmelerini nasıl uygulayabileceğiniz gösterilmektedir. Hızlı başlangıçlarda tanıtılan uygulamayı temel alır. Devam etmeden önce Uygulama Yapılandırması ile Java Spring uygulaması oluşturma işlemini tamamlayın.
Bu öğreticideki adımları gerçekleştirmek için herhangi bir kod düzenleyicisini kullanabilirsiniz. Visual Studio Code , Windows, macOS ve Linux platformlarında kullanılabilen mükemmel bir seçenektir.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Yapılandırma değişikliği olaylarını Uygulama Yapılandırması web kancasına göndermek için bir abonelik ayarlama
- Spring Boot uygulamasını App Service'e dağıtma
- Java Spring uygulamanızı, Uygulama Yapılandırması'daki değişikliklere yanıt olarak yapılandırmasını güncelleştirecek şekilde ayarlayın.
- Uygulamanızda en son yapılandırmayı kullanma.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Sürüm 11 ile desteklenen bir Java Development Kit (JDK).
- Apache Maven sürüm 3.0 veya üzeri.
- Mevcut bir Azure Uygulaması Yapılandırma Deposu.
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Anında İletme Yenileme kurulumu
pom.xml dosyasını açın ve dosyayı aşağıdaki bağımlılıklarla güncelleştirin.
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId> </dependency> <!-- Adds the Ability to Push Refresh --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.8.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
-
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.5.0:config
bootstrap.properties dosyasını açın ve yapılandırma anında iletme yenilemesi Azure Uygulaması 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.refresh-interval= 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
Olası azaltmayı azaltmak için önbelleğe alınan değer kirli olarak işaretlenmeden önce rastgele bir gecikme eklenir. Önbelleğe alınan değer kirli olarak işaretlenmeden önce varsayılan en uzun gecikme süresi 30 saniyedir.
Not
Birincil belirteç adı Uygulama Yapılandırması anahtar olarak depolanmalıdır ve ardından Birincil belirteç gizli dizisi ek güvenlik için Uygulama Yapılandırması Anahtar Kasası Başvurusu olarak depolanmalıdır.
App Service'te uygulamayı derleme ve çalıştırma
Event Grid Web Kancaları oluşturma işleminde doğrulama gerektirir. Bu kılavuzu izleyerek veya uygulamanızı önceden yapılandırılmış Azure Uygulaması Yapılandırma Spring Web Kitaplığı ile başlatarak doğrulayabilirsiniz. Bu, uygulamanızı sizin yerinize kaydeder. Olay aboneliği kullanmak için sonraki iki bölümdeki adımları izleyin.
Ortam değişkenini Uygulama Yapılandırması örneğinizin bağlantı dizesi ayarlayın:
setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>
öğesinin altındaki öğesini
pom.xml
güncelleştirinconfiguration
azure-webapp-maven-plugin
<appSettings> <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString> </appSettings>
Konsol uygulamasını oluşturmak için aşağıdaki komutu çalıştırın:
mvn package
Derleme başarıyla tamamlandıktan sonra aşağıdaki komutu çalıştırarak uygulamayı yerel olarak çalıştırın:
mvn azure-webapp:deploy
Olay aboneliği ayarlama
Azure portalında Uygulama Yapılandırması kaynağını açın ve bölmede
Events
öğesine tıklayın+ Event Subscription
.ve
System Topic
içinEvent Subscription
bir ad girin. Varsayılan olarak Olay Türleri Anahtar-Değer değiştirildi ve Anahtar-Değer silindi olarak ayarlanır; bu, Anında İletme Olayının tam nedenlerini seçmek için Filtreler sekmesinin kullanılmasıyla birlikte değiştirilebilir.olarak
Web Hook
öğesiniEndpoint Type
seçin, öğesini seçinSelect an endpoint
.Uç nokta, uygulamanın URI'sıdır + "/actuator/appconfiguration-refresh? {your-token-name}={your-token-secret}". Örneğin
https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecret
Create
Olay aboneliğini oluşturmak için öğesine tıklayın.Create
Seçildiğinde, Web Kancası için bir kayıt isteği uygulamanıza gönderilir. Bu, Azure Uygulaması Yapılandırması istemci kitaplığı tarafından doğrulanır ve geçerli bir yanıt döndürür.Event Subscriptions
AboneliğinEvents
başarıyla oluşturulduğunu doğrulamak için bölmeye tıklayın.
Not
Yapılandırma değişikliklerine 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 olarak yapılandırılabilir. Örneğin, abonelik filtresi yalnızca belirli bir dizeyle başlayan bir anahtardaki değişiklikler için olaylara abone olmak için kullanılabilir.
Not
Uygulamanızın birden çok örneği çalışıyorsa, yapılandırmalarını yenilemek için uygulamanızın appconfiguration-refresh-bus
tüm örneklerine ileti göndermek için kullanılan Azure Service Bus'ı ayarlamayı gerektiren uç noktayı kullanabilirsiniz. Uygulamanızın birden çok örneği çalışıyorsa ve tüm örneklerin en son yapılandırmayla güncelleştirildiğinden emin olmak istiyorsanız bu yararlı olur. Bu uç nokta, yapılandırılmış bir bağımlılığınız spring-cloud-bus
olmadığı sürece kullanılamaz. Daha fazla bilgi için Azure Service Bus Spring Cloud Bus belgelerine bakın. Service Bus bağlantısının yalnızca ayarlanması gerekir ve Azure Uygulaması Yapılandırma kitaplığı iletilerin gönderilmesini ve alınmasını işler.
Uygulamayı doğrulama ve test edin
Uygulamanız çalıştırıldıktan sonra curl kullanarak uygulamanızı test edin, örneğin:
curl -X GET https://my-azure-webapp.azurewebsites.net
Azure Portal'ı açın ve uygulamanızla ilişkilendirilmiş Uygulama Yapılandırması kaynağınıza gidin. İşlemler'in altında Yapılandırma Gezgini'ni seçin ve aşağıdaki anahtarların değerlerini güncelleştirin:
Anahtar Değer application/config.message Merhaba - Güncelleştirildi Görüntülenen yeni iletiyi görmek için tarayıcı sayfasını yenileyin.
Kaynakları temizleme
Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak 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 makalenin kaynaklarını, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.
- Azure portalında oturum açın ve Kaynak grupları'nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Genel bir bakış görmek için sonuç listesinde 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 Java uygulamanızın yapılandırma ayarlarını Uygulama Yapılandırması dinamik olarak yenilemesini etkinleştirmişsiniz. Daha fazla soru için başvuru belgelerine bakın; Spring Cloud Azure Uygulaması Configuration kitaplığının nasıl çalıştığıyla ilgili tüm ayrıntılara sahiptir. Azure yönetilen kimliğini kullanarak Uygulama Yapılandırması erişimini kolaylaştırmayı öğrenmek için sonraki öğreticiye geçin.