12/08/2018, 14:52

Tìm hiểu về microservices, demonstration với SpringBoot

Chào mọi người, hôm nay mình sẽ tạo 1 demo nho nhỏ nhằm giới thiệu về microservices thông qua việc sử dụng SpringBoot. Đầu tiên ta tìm hiểu xem microservices là gì? Khi phát triển các hệ thống lớn, cách triển khai phổ biến nhất là phát triển hướng component và các lib khác nhau cái mà implement ...

Chào mọi người, hôm nay mình sẽ tạo 1 demo nho nhỏ nhằm giới thiệu về microservices thông qua việc sử dụng SpringBoot. Đầu tiên ta tìm hiểu xem microservices là gì?

Khi phát triển các hệ thống lớn, cách triển khai phổ biến nhất là phát triển hướng component và các lib khác nhau cái mà implement các chức năng khác nhau. Với cách này, một số thành phần được tái sử dụng bởi các giao diện và / hoặc hệ thống khác nhau. Hãy tưởng tượng, ví dụ, một component implement chức năng đăng ký user và chúng ta đóng gói component này thành 1 file jar rồi release.

Trong trường hợp này, chúng ta có thể có một số giao diện để sử dụng lại component này, chẳng hạn như các ứng dụng web, di động, EJB, v.v ...Ngoài ra vì là project Java, nên chúng ta có thể có nhiều lựa chọn đóng gói, chẳng hạn như EAR, WAR, v.v ...Hãy tưởng tượng bây giờ có vấn đề với gói đăng kí user. Lúc này, chúng ta sẽ tốn khá nhiều effort bao gồm cả việc fix issue này, và đặc biệt là sau khi hoàn thành việc fix issue, chúng ta sẽ phải thực hiện việc deploy lại tất cả các ứng dụng cái mà có component này được đóng gói bên trong.

Để tìm kiếm giải pháp cho vấn đề này, mô hình kiến trúc microservices đã ra đời. Trong mô hình kiến trúc này, thay vì gói các tệp tin jar vào các hệ thống tiêu dùng, các thành phần được tiếp xúc độc lập dưới dạng các API có thể truy cập từ xa, ví dụ như các giao thức như HTTP.

Một điểm quan trọng cần lưu ý là mặc dù chúng ta đang nói về các project của Java, nhưng những nguyên tắc tương tự cũng có thể được áp dụng cho các ngôn ngữ, ví dụ như C #.

Là một trong những feature tuyệt vời của Spring framework, là cách nhanh nhất để tạo ra một REST service độc lập. Spring có hai benefit không thể bỏ qua:

  1. Nó đơn giản hóa việc cấu hình, cụ thể ở đây là Spring Boot tự cấu hình tất cả, bằng cách cung cấp các behaviour mặc định.
  2. Nó đơn giản hóa việc deploy, bằng cách đóng gói app của chúng ta thành gói jar, để có thể dễ dàng tích hợp vào các web container.

Không còn gì tuyệt vời hơn khi dùng Spring Boot cho kiến trúc microservices. Bắt đầu thôi             </div>
            
            <div class=

0