Topik ini menjelaskan cara mengembangkan dan menguji aplikasi demo Spring Cloud di lingkungan lokal, mengelola konfigurasi aplikasi menggunakan Spring Cloud Alibaba Nacos Config, serta mengelola dan mendorong konfigurasi menggunakan Serverless App Engine (SAE).
Prasyarat
Sebelum mengembangkan aplikasi, pastikan operasi berikut telah dilakukan:
Unduh Maven dan konfigurasikan variabel lingkungan.
Jalankan Nacos Server.
Unduh dan ekstrak paket Nacos Server.
Pergi ke direktori nacos/bin dan jalankan Nacos Server.
Linux, Unix, atau macOS: Jalankan perintah
sudo sh startup.sh -m standalone.Windows: Jalankan perintah
startup.cmd -m standalone.
Catatanstandalonemenunjukkan bahwa file startup.cmd dijalankan dalam mode mandiri, bukan Mode kluster. Secara default, file startup.cmd dimulai dalam Mode kluster. Jika Anda mengklik dua kali file startup.cmd untuk menjalankannya di sistem Windows, startup gagal. Dalam hal ini, Anda harus mengonfigurasiMODE="standalone"dalam file startup.cmd. Untuk informasi lebih lanjut, lihat Quick Start for Nacos.
Buat konfigurasi di konsol Nacos Server lokal.
Masuk ke konsol Nacos Server pada server lokal. Nama pengguna dan kata sandi default adalah
nacos.Di panel navigasi sisi kiri, klik Configurations. Pada halaman Configurations, klik ikon
di pojok kanan atas.Pada halaman Create Configuration, konfigurasikan parameter berikut dan klik Publish:
Data ID: nacos-config-example.properties
Group: DEFAULT_GROUP
Configuration Content: test.name=nacos-config-test
Latar Belakang
Saat mengembangkan aplikasi Spring Cloud, Anda dapat menggunakan Nacos untuk mengelola konfigurasi aplikasi. SAE terintegrasi dengan Nacos open source dari Application Configuration Management (ACM). Setelah menerapkan aplikasi di SAE, Anda dapat menggunakan SAE untuk mengelola dan mendorong konfigurasi aplikasi.
Dalam contoh ini, aplikasi demo Spring Cloud dikembangkan dan Spring Cloud Alibaba Nacos Config digunakan untuk mengelola konfigurasi aplikasi. Anda dapat mengklik nacos-config-example.zip untuk mengunduh aplikasi demo.
Spring Cloud Alibaba Nacos Config mengintegrasikan kerangka kerja Nacos dan Spring Cloud serta mendukung spesifikasi injeksi konfigurasi Spring Cloud.
Langkah 1: Gunakan Nacos Config untuk mengelola konfigurasi aplikasi
Buat proyek Maven bernama nacos-config-example.
Tambahkan dependensi ke file pom.xml.
Dalam contoh ini, Spring Boot 2.1.4.RELEASE dan Spring Cloud Greenwich.SR1 digunakan.
<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>Dalam contoh ini, Spring Cloud Greenwich digunakan. Versi Spring Cloud Alibaba untuk Spring Cloud Greenwich adalah 2.1.1.RELEASE.
Versi Spring Cloud Alibaba untuk Spring Cloud Finchley adalah 2.0.1.RELEASE.
Versi Spring Cloud Alibaba untuk Spring Cloud Edgware adalah 1.5.1.RELEASE.
CatatanSpring Cloud Edgware sudah tidak digunakan lagi. Kami merekomendasikan agar Anda tidak menggunakan Spring Cloud Edgware untuk mengembangkan aplikasi.
Di src\main\java, buat paket
com.aliware.edas.Di paket
com.aliware.edas, buat kelas startupNacosConfigExampleApplicationuntuk proyeknacos-config-example.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); } }Di paket
com.aliware.edas, buat controller sederhanaEchoController. PropertiuserNamedisuntikkan secara otomatis. Kemudian, tambahkan anotasi@Valueuntuk mendapatkan nilai kunci test.name dari konfigurasi.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; } }Di direktori
src\main\resources, buat file konfigurasibootstrap.properties. Di filebootstrap.properties, tambahkan item konfigurasi berikut untuk menentukan alamat Nacos Server.Dalam item konfigurasi berikut,
127.0.0.1:8848adalah alamat Nacos Server, dan18081adalah port layanan.Jika Nacos Server Anda diterapkan di mesin lain, ubah alamat IP dan port ke yang relevan. Jika Anda memiliki persyaratan lain, tambahkan item konfigurasi terkait di file bootstrap.properties. Untuk informasi lebih lanjut, lihat Item konfigurasi untuk referensi.
spring.application.name=nacos-config-example server.port=18081 spring.cloud.nacos.config.server-addr=127.0.0.1:8848Jalankan fungsi utama di kelas
NacosConfigExampleApplicationuntuk memulai aplikasi.
Langkah 2: Terapkan aplikasi di SAE
Setelah mengembangkan dan menguji aplikasi di lingkungan lokal, Anda dapat menerapkan aplikasi di SAE. Untuk informasi lebih lanjut, lihat Terapkan aplikasi.
Pusat manajemen konfigurasi SAE menyediakan versi komersial resmi Nacos Server. Saat menerapkan aplikasi di SAE, SAE menentukan informasi berikut dengan prioritas lebih tinggi: alamat IP dan port layanan Nacos Server, namespace, access-key, secret-key, dan context-path. Anda tidak perlu mengonfigurasi pengaturan tambahan. Anda dapat mempertahankan atau menghapus konfigurasi asli.
Pertama kali Anda menerapkan aplikasi di SAE console, Anda harus mengatur parameter Application Runtime Environment ke Standard Java Application Runtime Environment jika Anda memilih Deployment with JAR Packages saat membuat aplikasi.

Sebelum menerapkan aplikasi, gunakan fitur manajemen konfigurasi SAE untuk membuat konfigurasi aplikasi yang sama seperti yang ada di Nacos Server lokal.
Masuk ke konsol SAE. Di panel navigasi sisi kiri, klik Namespace, lalu pilih wilayah di bilah menu atas.
Di halaman Namespace, klik nama namespace yang diinginkan.
Di halaman yang muncul, pilih di panel navigasi sisi kiri. Di halaman Configurations, klik Create Configuration.
Di panel Create Configuration yang muncul, konfigurasikan parameter, lalu klik Create. Tabel berikut menjelaskan parameter.
Parameter
Deskripsi
Data ID
ID konfigurasi. Dalam contoh ini, nacos-config-example.properties ditentukan.
Untuk memastikan bahwa ID bersifat unik secara global, tentukan ID dalam format yang mengikuti konvensi penamaan
package.class. Contoh:com.taobao.tc.refund.log.level. Kami merekomendasikan agar Anda mengatur parameter class ke nama konfigurasi yang memiliki makna bisnis.Group
Nama grup konfigurasi. Dalam contoh ini, DEFAULT_GROUP digunakan.
Untuk memastikan bahwa nama grup bersifat unik secara global, kami merekomendasikan agar Anda menentukan nama grup dalam format
product name:module name. Contoh:ACM:Test. Anda dapat melakukan autentikasi berdasarkan grup.Data Encryption
Menentukan apakah akan mengenkripsi data konfigurasi. Jika konfigurasi Anda berisi data sensitif, kami merekomendasikan agar Anda mengaktifkan fitur enkripsi data untuk mencegah kebocoran data sensitif.
PentingSebelum Anda dapat mengaktifkan fitur enkripsi data, Anda harus mengaktifkan Key Management Service (KMS) dan memberikan izin kepada ACM untuk menggunakan KMS untuk enkripsi dan dekripsi data. Fitur enkripsi data ACM bergantung pada KMS. Anda harus mengaktifkan KMS dan memberikan izin yang diperlukan kepada ACM. Data ID konfigurasi terenkripsi dimulai dengan cipher-. Untuk informasi lebih lanjut, lihat Buat dan gunakan file konfigurasi terenkripsi.
Configuration Format
Format konten konfigurasi. Dalam contoh ini, TEXT dipilih.
Configuration Content
Konten konfigurasi. Dalam contoh ini, test.name=nacos-config-test ditentukan.
Configuration Description
Deskripsi konfigurasi.
More Configuration
Application
Nama aplikasi tempat konfigurasi tersebut berada.
Label
Label. Anda dapat mengelola konfigurasi berdasarkan label. Anda dapat menambahkan hingga lima label.
Langkah 3: Verifikasi hasil
Setelah menerapkan aplikasi, Anda dapat melihat log terkait untuk memeriksa apakah aplikasi telah dimulai.
Jalankan perintah
curl http://<application instance IP>:<service port>.Sebagai contoh, Anda dapat menjalankan perintah
curl http://192.168.0.34:8080untuk memeriksa apakah konten konfigurasinacos-config-testdikembalikan.Masuk ke SAE console, ubah konten konfigurasi asli menjadi
nacos-config-test2, lalu jalankan perintahcurl http://<application instance IP>:<service port>.Sebagai contoh, Anda dapat menjalankan perintah
curl http://192.168.0.34:8080untuk memeriksa apakah konten konfigurasi barunacos-config-test2dikembalikan.
Item konfigurasi untuk referensi
Jika Anda memiliki persyaratan lain, Anda dapat merujuk tabel berikut dan menambahkan item konfigurasi ke file bootstrap.properties.
Item konfigurasi | key | Nilai default | Deskripsi |
Server address | spring.cloud.nacos.config.server-addr | Tidak ada | Tidak ada. |
Data ID prefix | spring.cloud.nacos.config.prefix | ${spring.application.name} | Awalan dari Data ID. |
Group | spring.cloud.nacos.config.group | DEFAULT_GROUP | Grup. |
Data ID suffix and configuration file format | spring.cloud.nacos.config.file-extension | properties | Akhiran dari Data ID. Item konfigurasi ini juga menentukan format file konfigurasi. Nilai default adalah properties. Format YAML dan YML didukung. |
Encoding method of the configuration content | spring.cloud.nacos.config.encode | UTF-8 | Metode pengkodean konten konfigurasi. |
Timeout period for retrieving the configuration | spring.cloud.nacos.config.timeout | 3000 | Satuan: milidetik. |
Namespace of the configuration | spring.cloud.nacos.config.namespace | Namespace banyak digunakan untuk mengisolasi konfigurasi di lingkungan yang berbeda. Sebagai contoh, Anda dapat menggunakan namespace untuk mengisolasi sumber daya dalam lingkungan pengembangan, pengujian, dan produksi. | |
Relative path | spring.cloud.nacos.config.context-path | Path relatif API server. | |
Endpoint | spring.cloud.nacos.config.endpoint | UTF-8 | Endpoint layanan di wilayah tersebut. Anda dapat memperoleh alamat server secara dinamis berdasarkan endpoint. |
Enable listener and auto-refresh | spring.cloud.nacos.config.refresh.enabled | true | Nilai default adalah true. Anda tidak perlu mengubah item konfigurasi ini. |
Untuk informasi lebih lanjut tentang item konfigurasi, lihat dokumentasi open source Spring Cloud Alibaba Nacos Config.