Hiểu siêu ngắn gọn về Microservice

568
04-06-2018
Hiểu siêu ngắn gọn về Microservice

Bài viết nàyBizfly Cloud sẽ tóm lược về ưu và nhược điểm của kiến trúc Microservice và kiến trúc Monolithic, cũng như cách áp dụng dụng nó một cách dễ hiểu và ngắn gọn nhất.

Tổng quan về mircoservice

Hiểu siêu ngắn gọn về Microservice - Ảnh 1.

1. Microservice là gì?

Có khá nhiều bài viết giới thiệu và định nghĩa về khái niệm này, tôi xin phép đưa ra quan điểm cá nhân. Microservice, như tên của nó, đó chính là chia một khối phần mềm to tướng thành các dịch vụ nhỏ hơn, có thể triển khai trên các server khác nhau. Các dịch vụ này sẽ xử lý từng phần công việc và được kết nối với nhau thông qua các các giao thức khác nhau, như http, SOA, RPC, socket... để truyền tải dữ liệu.

2. Monolithic là gì?

Đây chính là mô hình truyền thống mà chúng ta sử dụng để phát triển từ trước tới nay, ví dụ, mô hình MVC là mô hình kinh điển với loại kiến trúc này. Nó sẽ xử lý tất các nghiệp vụ, công việc thông qua các module, dữ liệu được truyền tải trực tiếp giữa các module mà không cần thông qua giao thức nào.

Bài toán đặt ra

Bài toán của tôi cần giải quyết là xây dựng một hệ thống bao gồm các thành phần sau:

- Hệ thống crawler

- Ứng dụng báo

- Ứng dụng nhà thông minh

- Hệ tổng hợp tiếng nói.

Với những thành phần ở trên, thì Hệ tổng hợp tiếng nói yêu cầu tài nguyên rất lớn. Ngoài ra, vì đầu ra của nó là tiếng nói, nên tôi cần lưu trữ lại kết quả với số lượng lớn. Bên canh đó, những ứng dụng này cần trả lại kết quả thời gian thực (thường là yêu cầu dưới 2s). Từ những yêu cầu trên, thì việc phát triển hệ thống 1 khối là điều khó khăn và gần như không thể. Thêm nữa, trong tương lai sẽ bổ sung thêm các dịch vụ khác được cắm vào để sử dụng hệ tổng hợp tiếng nói.

Từ những vấn đề trên, tôi quyết định sử dụng mô hình Microservice. Dưới dây là mô hình của tôi đã thiết kế.

Hiểu siêu ngắn gọn về Microservice - Ảnh 2.

Hướng giải quyết vấn đề

Từ thiết kế trên, tôi phân thành các phần như sau:

1. TTS Gateway

Phần này có chức năng như sau:- Xác thực các request từ client.- Điều hướng yêu cầu đến các TTS Engine thông qua load balancer.- Xác định store sẽ lưu thông qua load balancer.

2. TTS Engine

Phần này có chức tổng hợp âm thanh hoặc các tác vụ liên quan (ví dụ như tìm các từ sai chính tả, tóm tắt....) dựa vào content được truyền vào từ bên Gateway. Nếu output yêu cầu là audio, sẽ lưu file tại store. Vị trí store được truyền vào thông qua gateway.

3. Store

Có những chức năng như sau:

- Lưu trữ file audio được nhận từ TTS Engine

- Join các file audio với nhau.

- Xóa các file đã quá hạn quy định.

- Xóa các file được yêu cầu

- Convert từ định dạng wav sang định dạng được yêu cầu.

Trong phần tiếp theo, tôi sẽ trình bày cụ thể về phần xây dựng load balancer, cũng như cách kết nối các service mà tôi đã dùng.

Cảm ơn các bạn đã theo dõi!

Nguồn: Bizfly Cloud chia sẻ

>> Có thể bạn quan tâm: Cách cài đặt chi tiết Lazy Loading Images - Phương pháp tăng tốc độ tải trang hữu hiệu

SHARE