Spring Cloud uygulamaları, yerel geliştirme sırasında yapılandırma yönetimi için Nacos kullanır. Enterprise Distributed Application Service (EDAS) üzerine dağıtım yaptıktan sonra, EDAS ile entegre olan Application Configuration Management (ACM), yapılandırma yönetimini ve gönderimini otomatik olarak devralır.
Bu konuda, Spring Cloud Alibaba Nacos Config kullanarak bir Spring Cloud uygulaması oluşturma adımları anlatılmaktadır:
Nacos Server'ı yerel olarak başlatın ve bir yapılandırma oluşturun
Nacos'tan veri okuyan bir Spring Boot uygulaması oluşturun
Dinamik yapılandırma yenilemesini doğrulayın
Uygulamayı EDAS'e dağıtın
Oluşturma adımlarını atlamak isterseniz, nacos-config-example.zip demo projesini indirin.
Spring Cloud Alibaba Nacos Config, Nacos'u Spring Cloud çerçevesiyle entegre eder ve Spring Cloud yapılandırma enjeksiyon belirtimini takip eder.
EDAS yapılandırma yönetimi özelliği, açık kaynaklı Nacos ile çakışmaz.
Ön koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Maven yüklü ve sistem PATH'inizde yapılandırılmış olmalıdır
En son Nacos Server sürümü indirilmiş olmalıdır
Adım 1: Nacos Server'ı başlatma
İndirilen Nacos Server arşivini ayıklayın.
-
nacos/bindizinine gidin ve sunucuyu tek düğüm (standalone) modunda başlatın:-
Linux, UNIX veya macOS:
sh startup.sh -m standalone -
Windows:
startup.cmd -m standalone
-
Varsayılan olarak, startup.cmd küme modunda çalıştırılır. Windows'ta dosyaya doğrudan çift tıklamak başlatmanın başarısız olmasına neden olur. Yukarıdaki komutu çalıştırın veya startup.cmd dosyasına MODE="standalone" ekleyin. Ayrıntılar için Nacos hızlı başlangıç konusuna bakın.
Adım 2: Yerel yapılandırma oluşturma
Nacos Server konsolunu http://127.0.0.1:8848/nacos adresinde açın. Varsayılan kullanıcı adı ve parola
nacosdeğeridir.Sol gezinme bölmesinde, ConfigManagement > Configurations seçeneğine tıklayın.
Yapılandırma oluşturmak için sağ üst köşedeki
simgesine tıklayın.-
Create Configuration sayfasında aşağıdaki parametreleri ayarlayın ve Publish seçeneğine tıklayın:
Parameter Value Data ID nacos-config-example.propertiesGroup DEFAULT_GROUPFormat PropertiesConfiguration Content test.name=nacos-config-test
Data ID'nin uygulamanızla eşleşmesi
Data ID aşağıdaki adlandırma kuralını izler:
${prefix}-${spring.profiles.active}.${file-extension}
| Component | Default | Override property |
|---|---|---|
prefix |
spring.application.name değeri |
spring.cloud.nacos.config.prefix |
spring.profiles.active |
Geçerli Spring profili. Boş olduğunda tire atlanır: ${prefix}.${file-extension} |
-- |
file-extension |
properties |
spring.cloud.nacos.config.file-extension. Desteklenen formatlar: properties, yaml, yml |
Bu konuda, uygulama adı nacos-config-example olup etkin profil bulunmadığından Data ID nacos-config-example.properties şeklindedir.
Adım 3: Spring Boot uygulamasını oluşturma
3a. Maven projesi oluşturma
nacos-config-example adında bir Maven projesi oluşturun.
3b. Bağımlılıkları ekleme
Aşağıdakileri pom.xml dosyasına ekleyin. Bu örnekte Spring Boot 2.1.4.RELEASE ve Spring Cloud Greenwich.SR1 kullanılmaktadır:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Sürüm uyumluluğu
Spring Cloud Alibaba sürümünü Spring Cloud release train sürümünüzle eşleştirin:
| Spring Cloud release train | Spring Cloud Alibaba version |
|---|---|
| Greenwich | 2.1.1.RELEASE |
| Finchley | 2.0.1.RELEASE |
| ~~Edgware~~ | ~~1.5.1.RELEASE~~ (kullanımdan kaldırıldı -- kullanmayın) |
3c. Başlangıç sınıfını oluşturma
src/main/java altında com.aliware.edas paketini oluşturun ve aşağıdaki NacosConfigExampleApplication sınıfını ekleyin:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class NacosConfigExampleApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConfigExampleApplication.class, args);
}
}
3d. Denetleyici oluşturma
Aynı pakette bir EchoController sınıfı oluşturun. @RefreshScope ek açıklaması dinamik yapılandırma yenilemeyi etkinleştirir: Nacos'ta test.name değeri değiştiğinde, uygulama yeniden başlatılmadan yeni değeri algılar.
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope
public class EchoController {
@Value("${test.name}")
private String userName;
@RequestMapping(value = "/")
public String echo() {
return userName;
}
}
@RefreshScope ek açıklaması, Nacos bir yapılandırma değişikliği gönderdiğinde bean'i yeniden oluşturur. Otomatik yenileme dinleyicisi varsayılan olarak etkindir (spring.cloud.nacos.config.refresh.enabled=true).
3e. Nacos Server adresini yapılandırma
src/main/resources altında bir bootstrap.properties dosyası oluşturun:
spring.application.name=nacos-config-example
server.port=18081
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
127.0.0.1:8848-- Nacos Server adresi.18081-- uygulama bağlantı noktası.
Nacos Server farklı bir makinede çalışıyorsa adresi ve bağlantı noktasını güncelleyin. Ek özellikler için Yapılandırma referansı bölümüne bakın.
Adım 4: Yerel ortamda çalıştırma ve doğrulama
İlk yapılandırmayı doğrulama
Uygulamayı başlatmak için
NacosConfigExampleApplicationiçindekimainyöntemini çalıştırın.Tarayıcıda http://127.0.0.1:18081 adresini açın. Yanıt, Adım 2'de ayarladığınız
test.namedeğeri olannacos-config-testolacaktır.
Dinamik yapılandırma yenilemesini doğrulama
Nacos Server konsolunda, ConfigManagement > Configurations bölümüne gidin ve
nacos-config-example.propertiesgirdisini düzenleyin.test.name=nacos-config-testdeğerinitest.name=nacos-config-updatedolarak değiştirin ve Publish seçeneğine tıklayın.http://127.0.0.1:18081 adresini yenileyin. Yanıt artık
nacos-config-updateddeğerini gösterir; bu da@RefreshScopeişlevinin uygulama yeniden başlatılmadan çalıştığını doğrular.
Adım 5: EDAS'e dağıtma
Uygulamanın EDAS yapılandırma yönetimi modülünden verileri okuyabilmesi için dağıtımdan önce aynı yapılandırmayı EDAS'te yeniden oluşturun.
5a. EDAS'te yapılandırma oluşturma
EDAS console üzerinde oturum açın.
Sol gezinme bölmesinde, Application Management > Microservice Configurations seçeneğine tıklayın.
Configurations sayfasında, üst gezinme çubuğundan bir Region seçin ve açılan menüden bir Microservices Namespace belirleyin. Ardından Create Configuration seçeneğine tıklayın.
-
Create Configuration panelinde, yerel Nacos yapılandırmasıyla aynı parametreleri ayarlayın ve Create seçeneğine tıklayın:
Parameter Value Data ID nacos-config-example.propertiesGroup DEFAULT_GROUPFormat PropertiesConfiguration Content test.name=nacos-config-test
Region ve Microservice Namespace değerleri, Configurations sayfasından devralınır ve bu panelde değiştirilemez.
5b. Uygulamayı dağıtma
Uygulamayı EDAS'e dağıtın. Altyapınıza bağlı olarak bir dağıtım yöntemi seçin:
Yerelden cloud'a geliştirmeyi hızlandırma
Uygulamanız EDAS üzerinde çalışmaya başladıktan sonra, sonraki yinelemeler için yerel Nacos Server kurulumunu atlamanız mümkündür. EDAS, yerel olarak çalışan bir uygulamanın şunları yapmasına olanak tanıyan bir yerel-cloud ara bağlantı özelliği sağlar:
Yapılandırmaları doğrudan EDAS yapılandırma yönetimi modülünden okuma
Cloud'a dağıtılan diğer uygulamaları çağırma ve bu uygulamalardan gelen çağrıları alma
Bu sayede, her değişiklik için yeniden dağıtım yapmadan tam EDAS çalışma zamanı davranışını elde edersiniz.
Yapılandırma referansı
Nacos Config davranışını özelleştirmek için aşağıdaki özelliklerden herhangi birini bootstrap.properties dosyasına ekleyin:
| Configuration item | Key | Default | Description |
|---|---|---|---|
| Sunucu adresi | spring.cloud.nacos.config.server-addr |
-- | Nacos Server adresi (gerekli) |
| Data ID ön eki | spring.cloud.nacos.config.prefix |
${spring.application.name} |
Data ID'nin ön ek kısmı |
| Grup | spring.cloud.nacos.config.group |
DEFAULT_GROUP |
Yapılandırma grubu |
| Data ID soneki ve formatı | spring.cloud.nacos.config.file-extension |
properties |
Yapılandırma içeriğinin dosya formatı. Desteklenenler: properties, yaml, yml |
| Kodlama | spring.cloud.nacos.config.encode |
UTF-8 |
Yapılandırma içeriği için karakter kodlaması |
| Zaman aşımı | spring.cloud.nacos.config.timeout |
3000 |
Yapılandırmaları getirme zaman aşımı (milisaniye cinsinden) |
| Ad alanı | spring.cloud.nacos.config.namespace |
-- | Yapılandırmaları ortamlar arasında (geliştirme, test, üretim) yalıtmak için |
| Bağlam yolu | spring.cloud.nacos.config.context-path |
-- | Nacos Server API'sinin göreli yolu |
| Uç nokta | spring.cloud.nacos.config.endpoint |
UTF-8 |
Dinamik sunucu adresi çözümlemesi için bölgeye özgü uç nokta |
| Otomatik yenileme | spring.cloud.nacos.config.refresh.enabled |
true |
Yapılandırma değişikliği dinleyicisini etkinleştirme veya devre dışı bırakma |
Tüm yapılandırma öğelerinin listesi için Spring Cloud Alibaba Nacos Config belgelerine bakın.