Mô hình Polyglot trong Microservice
microservices
11
White

Giaosucan viết ngày 25/05/2018

Giaosucan's blog chia sẻ kiến thức theo cách bá đạo

http://www.giaosucan.com/

microservice polyglot
alt text

Polyglot là gì?

Polyglot vốn là một từ trong đời thường ám chỉ những người có khả năng nói được nhiều ngôn ngữ khác nhau. Chẳng hạn một người châu âu có thể nói 3 , 4 thứ tiếng Anh Pháp Trung Nhật, một anh Việt Nam nói được chục thứ tiếng cỡ như Mán, Mường, H’ mông, Ê đê. Họ trở thành những polyglot. Đại loại những thanh niên nào đa tài, đa zi năng, cái gì cũng biết thì gọi là Polyglot.
Khái niệm Polyglot trên cũng được áp dụng vào Microservice. Trong mô hình này, chúng ta không sử dụng duy nhất một loại database như kiến trúc đơn khối mà sử dụng một tập hợp nhiều loại database khác nhau như NoSQL, Graph, ElasticSearch…Cũng giống như anh Tây xài được nhiều ngoại ngữ
alt text

Cần Polyglot để làm gì

Hãy xem xét một bài toán thực tế sau
Bạn có một website bán hàng, user truy cập tìm kiếm sản phẩm, order và thực hiện payment. Website sử dụng kiến trúc microservice với các service Search, Order và Payment, và chỉ dùng duy nhất một loại database quan hệ như sau
alt text
Do số nhọ nên bạn gặp toàn khách hàng chơi lầy, search, order sản phẩm thì rất nhiều nhưng đến giai đoạn payment thì quịt. Như vậy thì service Search phải handle 1 số lượng lớn request tìm kiếm từ phía user, trong khi tốc độ query data trong database relational thì chậm (do số lượng record quá lớn), dẫn tới quá tải và service ngủm củ tỏi luôn.
Hệ thống hoạt động không ổn định, khách hàng thì chơi lầy nên ko bao lâu thì bạn sạt nghiệp, phải vác bơm ra hè kiếm cơm.
Lúc này thì mô hình Polyglot sẽ phát huy tác dụng, tận dụng được tính độc lập của kiến trúc microservice, bạn chỉ cần thay thế Database quan hệ Search bằng loại database khác hỗ trợ tìm kiếm tốc độ cao như ElasticSearch, MongoDB là xong, khỏi phải lo optimize SQL query, nâng cấp database….
Đối với kiến trúc đơn khối truyền thống, bạn bị bó buộc vào việc chỉ sử dụng được 1 loại DB duy nhất
alt text
thì microservice cung cấp cho chúng ta một giải pháp linh hoạt hơn. Tùy theo nghiệp vụ của service bạn tự lựa chọn loại database cho phù hợp
alt text
Ví dụ service chuyên tìm kiếm thì sử dụng NoSQL, service chuyên đọc ghi CRUD thì dùng relational database, service làm việc với dữ liệu quan hệ phức tạp thì dùng Graph (Neo4J) database. Tóm lại đông tây y kết hợp đủ cả.

Nhược điểm của Polyglot

Cái gì hiện đại thì cũng hại điện, mọi thứ đều có mặt trái của nó. Polyglot cũng vậy, sử dụng quá nhiều loại database khác nhau đồng nghĩa với bạn phải làm quen với nhiều loại công nghệ đi kèm, chi phí phát triển và bảo trì hệ thống cũng tăng lên.
Hơn nữa, mỗi loại database lại sử dụng những format data khác nhau (NoSQL thì dùng JSON, document, SQL thì dùng record, Graph database dùng data dạng graph gồm node, edge…) nên việc xử lý data consistency giữa các database cũng là một thách thức lớn.

Kết luận

Hiểu được ưu nhược điểm của Polyglot sẽ giúp bạn có cách trade off, lựa chọn database phù hợp. Tốt nhất là service của bạn cần thế nào thì chọn database theo thế đấy. Lời khuyên là cũng không nên cố xài lắm database làm gì. Nó có thể dẫn bạn đến tình trạng cái gì cũng chơi, chơi quá độ đến mức liệt, cuối cùng là chẳng chơi nổi cái gì.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Giaosucan

40 bài viết.
339 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
51 5
Bản quyền thuộc Fsoft Potato Tech Mag Giới thiệu series chuyện về kiến trúc Microservice từ thiết kế đển implementation Giaosucan's blog: Chia sẻ...
Giaosucan viết 10 tháng trước
51 5
White
30 3
Đón đọc những bài viết đặc sắc ở blog https://giaosucan.blogspot.com Lịch sử ra đời Những người làm trong ngành tài chính ngân hàng sẽ không xa lạ...
Giaosucan viết 1 năm trước
30 3
White
25 5
Bản quyền thuộc Fsoft Potato Tech Mag Đón đọc những bài viết đặc sắc ở blog https://giaosucan.blogspot.com Năm Donal Trump lần thứ nhất, cách mạ...
Giaosucan viết hơn 1 năm trước
25 5
Bài viết liên quan
White
10 0
Microservices hiện được quan tâm trong giới phần mềm, công nghệ với nhiều bài viết, blog, thảo luận, truyền thông, hội thảo. Kỳ vọng về khả năng củ...
Tân Nguyễn viết 10 tháng trước
10 0
White
9 0
Giaosucan Blog, chia sẻ kiến thức theo cách bá đạo http://www.giaosucan.com/ (Ảnh) Cảnh báo, biết viết chứa nhiều nội dung 18+, nghiêm cấm phụ ...
Giaosucan viết 8 tháng trước
9 0
White
16 8
Bản quyền Fsoft Potato Tech Mag Tiếp theo series Microservice Những câu chuyện kì bí Giaosucan's blog Chia sẻ kiến thức kĩ thuât theo cách bá đạo...
Giaosucan viết 10 tháng trước
16 8
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
40 bài viết.
339 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!