Tích hợp Trung tâm Cấu hình Apollo với Spring Boot

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.

>>>>>>>>>>");
        }
    }
}

Thẻ: Spring Boot Apollo Configuration Center Java

Đăng vào ngày 14 tháng 7 lúc 00:41