Microservices và Spring Cloud
Microservices là giải pháp tách một hệ thống lớn thành những thành phần độc lập, dễ dàng phát triển, kiểm thử và triển khai. Spring Cloud là một dự án con của Spring được sử dụng để phát triển các ứng dụng phân tán. Dự án này làm việc tốt với hệ thống microservices. Spring Cloud được xây dựng trên nền tảng Spring Boot để giảm bớt cấu hình phức tạp và dễ dàng cài đặt.
Xây dựng Microservice và Gateway
Trong series này, chúng ta sẽ tìm hiểu cách xây dựng một hệ thống microservice bằng Spring Boot và Eureka, một dự án trong Spring Cloud. Phần đầu tiên sẽ tập trung vào việc tạo các microservice và gateway.
Trước khi đi vào chi tiết, chúng ta cần tạo các service registry, image, gallery và một gateway. Gallery service sẽ lấy những bức ảnh từ Image service và sắp xếp chúng thành một album ảnh.
Tạo Eureka server
Eureka server là một máy chủ dùng để quản lý và đặt tên cho các service. Chúng ta cần một server như vậy để tránh việc hardcode địa chỉ IP của mỗi microservice. Eureka server sẽ tự động cập nhật các địa chỉ IP của service và gỡ bỏ service nếu không nhận được thông báo từ chúng.
Để tạo Eureka server, chúng ta sẽ sử dụng Maven để quản lý các dependencies. Lưu ý rằng mỗi component trong microservice được dựng một cách độc lập. Chúng ta sẽ tạo một project Spring Boot mới và khai báo các dependencies cần thiết trong file pom.xml.
Sau đó, cấu hình các thông số trong file application.properties để khởi tạo Eureka server.
Đơn giản chỉ với một vài bước như vậy, chúng ta đã tạo được một Eureka server để quản lý các service trong hệ thống.
Tạo Image service
Image service là một service độc lập trong kiến trúc microservice. Chúng ta sẽ xây dựng image service như một nguồn để chứa và cung cấp các bức ảnh. Mỗi bức ảnh sẽ có một id, tựa đề và địa chỉ url.
Cũng như Eureka server, chúng ta sẽ tạo một project Spring Boot mới nhưng sử dụng Eureka Client để đăng ký với Eureka server. Sau đó, cấu hình file application.properties để kết nối với Eureka server.
Chúng ta cũng sẽ tạo các entity và controller để xử lý các request từ client.
Tạo Gallery service
Gallery service là một service khác trong hệ thống microservice. Nó sẽ gọi đến image service thông qua các endpoint đã được tạo ở trên và sử dụng kết quả nhận được để tạo một album ảnh.
Tương tự như các service trước, chúng ta tạo một project Spring Boot mới và sử dụng Eureka Client để đăng ký với Eureka server. Cấu hình các thông số trong file application.properties để kết nối với Eureka server.
Chúng ta sẽ khai báo một bean RestTemplate trong class main để gọi đến image service. Sau đó, tạo các entity và controller để xử lý request từ client.
Tạo Zuul Gateway
Mỗi khi chúng ta gọi đến một service trong hệ thống từ trình duyệt, chúng ta không thể gọi trực tiếp bằng tên service mà cần thông qua một gateway. Zuul là một gateway, proxy và trung gian giữa người dùng và các service trong hệ thống.
Chúng ta tạo một project Zuul Gateway mới và sử dụng Eureka Client để đăng ký với Eureka server. Cấu hình thông số trong file application.properties để định tuyến các request đến các service tương ứng.
Với bốn bước trên, chúng ta đã xây dựng xong bộ khung cho hệ thống microservice. Bây giờ chỉ cần start lên và từ đó, chúng ta có thể gọi các service trong hệ thống một cách dễ dàng.
Để biết thêm chi tiết về cách xây dựng hệ thống microservice bằng Spring Boot và Eureka, hãy truy cập https://tubean.github.io/2018/12/microservice-springboot-eureka-part2/ và https://medium.com/omarelgabrys-blog/microservices-with-spring-boot-intro-to-microservices-part-1-c0d24cd422c3.
HEFC – https://www.hefc.edu.vn/