Questions Management – Load balancing sử dụng Ribbon của Spring Cloud Netflix

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.

Mình đã giới thiệu với bạn về client load balancing sử dụng Spring Cloud Ribbon với những lợi ích của nó. Để đảm bảo tính High Availability cho các service trong ứng dụng Questions Management, mình sẽ apply client load balancing sử dụng Spring Cloud Ribbon này vào những service có gọi tới các service khác.

Các service có gọi tới những service khác trong ứng dụng Questions Management là các service nằm trong phần API Service và Composite Service. Để apply Spring Cloud Ribbon, mình sẽ mở tập tin pom.xml của mỗi project service và thêm Spring Cloud Ribbon như sau:

Tiếp theo chúng ta sẽ sửa code để apply client load balancing cho các project service có sử dụng Ribbon.

Chúng ta sẽ sửa API Category Service trước các bạn nhé!

Service này gọi đến Core Category Service trong class CoreCategoryServiceImpl nên mình sẽ autowire interface LoadBalancerClient vào class này rồi sửa lại phương thức getServiceUrl() lại như sau:

Vì bây giờ chúng ta không sử dụng biến coreCategoryServiceUrl nữa, nên mình cũng sẽ remove biến này và property “corecategoryservice.url” trong tập tin application.properties đi.

Tương tự cho API Option Service

CompositeOptionServiceImpl:

CoreOptionServiceImpl:

Tương tự cho API Question Service

CompositeQuestionServiceImpl:

Tương tự cho Composite Option Service

CoreOptionServiceImpl:

CoreQuestionServiceImpl:

Tương tự cho Composite Question Service

CoreCategoryServiceImpl:

CoreOptionServiceImpl:

CoreQuestionServiceImpl:

Chạy lại ứng dụng Questions Management, các bạn sẽ thấy các tính năng chúng ta đã xây dựng đều hoạt động bình thường.

5/5 - (1 bình chọn)

Add Comment