Xem toàn bộ series bài viết hướng dẫn xây dựng ứng dụng Questions Management tại đây.
Sau khi đã tạo project support-edge-server, giờ là lúc chúng ta sẽ đi vào hiện thực API Gateway sử dụng Zuul Proxy của Spring Cloud Netflix cho ứng dụng Questions Management.
Như mình đã giới thiệu về Zuul Proxy ở bài viết này, đầu tiên, cái chúng ta cần làm là thêm annotation @EnableZuulProxy vào class SupportEdgeServerApplication như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package com.huongdanjava.qm.edgeserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @EnableZuulProxy @SpringBootApplication public class SupportEdgeServerApplication { public static void main(String[] args) { SpringApplication.run(SupportEdgeServerApplication.class, args); } } |
Tiếp theo, chúng ta sẽ đăng ký API Gateway với Eureka Server bằng cách cấu hình tập tin application.properties như sau:
1 2 3 4 5 6 |
spring.application.name=Support Edge Server eureka.client.service-url.default-zone=http://localhost:8761 eureka.client.fetchRegistry=true server.port=8380 |
Ứng dụng Questions Management của chúng ta có 3 service sẽ tương tác trực tiếp với bên ngoài hiện tại là API Question Service, API Category Service, API Option Service. Bây giờ chúng ta sẽ khai báo các service này trong API Gateway với Zuul Proxy như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
zuul.prefix=/qm zuul.routes.optionservice.serviceId=API Option Service zuul.routes.optionservice.path=/option/** zuul.routes.optionservice.strip-prefix=false zuul.routes.categoryservice.service-id=API Category Service zuul.routes.categoryservice.path=/category/** zuul.routes.categoryservice.strip-prefix=false zuul.routes.questionservice.service-id=API Question Service zuul.routes.questionservice.path=/question/** zuul.routes.questionservice.strip-prefix=false |
Ở đây, mình đã cấu hình tất cả các service với request URL sẽ bắt đầu với “/qm” và chúng ta sẽ keep prefix path mà chúng ta đã khai báo. Các bạn có thể đọc thêm bài viết này để hiểu rõ về các cấu hình trên nhé!
Đến đây thì chúng ta đã hoàn thành việc xây dựng API Gateway rồi đó các bạn!