Học Microservice với Spring Boot - ToiHieuRoi.com

Học Microservice với Spring Boot – [Phần 4]

Posted by

Dưới đây là link của loạt bài “Học Microservice với Spring Boot“:

Phần này là phần 4 của loạt bài trên. Chúng ta sẽ tập trung vào việc sử dụng Ribbon cho Load Balancing trong phần này.

Mục tiêu

Mục tiêu của chúng ta là trả lời 4 câu hỏi dưới đây:

  • Load Balancing cần gì?
  • Ribbon là gì?
  • Làm thế nào để thêm Ribbon vào Spring Boot Project?
  • Cấu hình Ribbon như thế nào?

Tổng quan

Trong những phần trước, chúng ta đã tạo 2 microservice và định nghĩa cách giao tiếp giữa chúng.

Tuy nhiên, những request được gửi từ Currency Conversion Service (CSS) chỉ được gửi đến một Forex Service (FS) cố định do cách giao tiếp chúng ta đã xây dựng bằng việc sử dụng Feign.

Trong phần này, chúng ta sẽ thêm Load Balancing cho CSS để những request từ CSS đến FS có thể chia ra cho những FS instance khác nhau bằng cách sử dụng Ribbon.

Complete Maven Project

Mình có đưa source code lên Github. Bạn nào cần thì có thể lấy về tham khảo nhé. Link: https://github.com/ndtai/learning-microservice

Thêm Ribbon vào project

Thêm Ribbon dependency vào file pom.xml

Thêm annotation @RibbonClient và bỏ thuộc tính url  của annotation @FeignClient  trong class CurrencyExchangeServiceProxy

Chỉ định các FS instance trong file application.properties

Test

  • Chạy CSS sử dụng port 8100
  • Chạy 2 instance FS sử dụng port 8000 và 8001
  • Mở browser lên, bật 2 tab và paste link này vào:  http://localhost:8100/currency-converter-feign/from/EUR/to/INR/quantity/10000

Kết quả thu được như dưới đây là ta đã thành công (phải mất công reload vài lần nhé).

Học Microservice với Spring Boot - ToiHieuRoi.com

Học Microservice với Spring Boot - ToiHieuRoi.com

Kết luận

Tuy chúng ta đã áp dụng Load Balancing vào trong project của chúng ta nhưng nó còn khá “cùi” và “tay to” (ý là làm thủ công nhiều) vì mỗi khi chúng ta thêm FS instance thì lại phải cập nhật lại file application.properties  trong CSS. Việc này rất bất tiện và không có tính automatic. Để khắc phục vấn đề này chúng ta sẽ sử dụng Eureka Naming Server, mời các bạn theo dõi phần tiếp theo cũng là phần cuối cùng trong loạt bài này.

Nguồn: http://www.springboottutorial.com/microservices-with-spring-boot-part-4-ribbon-for-load-balancing

Leave a Reply

Your email address will not be published. Required fields are marked *