Giới thiệu
Việc tích hợp trung tâm cấu hình vào các dự án Spring Boot là một giải pháp phổ biến, chủ yếu nhờ khả năng cập nhật cấu hình tức thời mà không cần khởi động lại ứng dụng. Lý do chúng tôi lựa chọn Apollo là vì nó có cơ bản bản nháp (draft) và sau đó mới xuất bản (publish) tính năng, cho phép chúng tôi chuẩn bị các thay đổi cấu hình trước khi triển khai lên môi trường sản xuất, kiểm tra kỹ lưỡng trước khi chính thức phát hành - một cơ chế cực kỳ hữu ích cho các dự án thực tế.
Quy trình tích hợp
3.1 Thêm dependency vào pom.xml
Trong file pom.xml, chúng ta cần thêm dependency cho client của Apollo:
<!--apollo-->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.6.0</version>
</dependency>
Bên cạnh đó, chúng ta cũng nên thêm các dependency khác như spring-cloud-context, lombok và fastjson:
<!--spring-cloud-context-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-context</artifactId>
<version>3.1.4</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.32</version>
</dependency>
3.2 Cấu hình lớp khởi động của Spring Boot
Trong lớp khởi động chính của ứng dụng, chúng ta cần thêm annotation @EnableApolloConfig:
@SpringBootApplication
@EnableApolloConfig
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3.3 Cấu hình file application.yml
Đầu tiên, chúng ta tạo một ứng dụng có tên là `user-admin-server` trên Apollo管理中心 (Apollo Management Center). AppId của ứng dụng sẽ là: `user-admin-server`
Giả sử địa chỉ của Apollo管理中心 cục bộ của chúng ta là: `http://localhost:8070/`
File application.yml sẽ được cấu hình như sau:
app:
id: ${spring.application.name:user-admin-server}
apollo:
meta: http://localhost:8060
bootstrap:
enabled: true
eagerLoad:
enabled: true
server:
port: 8888
3.4 Tạo lớp kiểm thử
Chúng ta tạo một lớp kiểm thử để thử nghiệm tính năng của Apollo. Dưới đây là hai ví dụ: một là sử dụng @Value để cập nhật động, hai là sử dụng @ApolloJsonValue để cập nhật động.
3.4.1 Sử dụng @Value cập nhật động
Truy cập `http://localhost:8888/demo/apollo-demo1`, chúng ta sẽ nhận được kết quả ban đầu.
Bây giờ, chúng ta cấu hình giá trị cho test.value trên Apollo, ví dụ: `Chào mừng đến với Apollo!`, sau đó truy cập lại `http://localhost:8888/demo/apollo-demo1` để xem kết quả.
3.4.2 Sử dụng @ApolloJsonValue cập nhật động
Apollo cũng hỗ trợ inject đối tượng/JSON, ví dụ:
3.5 Tạo lớp lắng nghe thay đổi cấu hình
Apollo cũng hỗ trợ lắng nghe các thay đổi của một số trường cấu hình và thực hiện các thao tác tùy chỉnh.
>>>>>>>>>>");
}
}
}