Microservices Là Gì

     

Chào phần đa người, nếu như như chúng ta cũng biết thì dự án công trình Teamcrop của bản thân mình xây dựng cùng chạy hoàn toàn trên bản vẽ xây dựng Microservices và sau hơn 2 năm triển khai thì có một trong những vấn đề tương quan đến kiến trúc này, thiết nghĩ cần share thêm với đa số người nhằm mọi tín đồ thấy được rằng Microservices không phải là khóa xe vạn năng như vẫn tuyệt nghe quảng cáo, dụ dỗ. Phần nhiều kiến trúc đều phải sở hữu đánh đổi và Microservices cũng vậy.

Bạn đang xem: Microservices là gì

Mình đang viết một loạt bài (5, 6 bài bác gì đó) về việc tăng tốc đến kiến trúc Microservices mà vẫn rút tỉa được trong quá trình triển khai dự án Teamcrop, bởi vì tốc độ luôn là yếu tố bậc nhất khi xây dựng các ứng dụng web, và với phong cách xây dựng mới này thì tăng tốc là 1 trong những kỹ thuật buộc phải xem xét lúc triển khai.

Microservices là gì?

Microservices là các dịch vụ nhỏ, tách biệt thay mặt đại diện cho một phần nhỏ tương ứng trong business domain của bạn. Với kiến trúc Monolithic, các bạn sẽ có 1 server phệ chịu trách nhiệm giải quyết và xử lý tất cả những requests. Câu hỏi này sẽ gây ra khó khăn không ít trên mặt scale. Microservices có thể cân bởi traffic theo nhu cầu của doanh nghiệp. Nếu đang nhận được một lượng phệ thanh toán, chúng ta cũng có thể scale up thiết bị giao dịch thanh toán và giữ những dịch vụ khác tại mức sử dụng 1 lượng nhỏ hơn những services.


*
*
*

Một số kế hoạch cơ bản

Để xử lý bài toán hiển thị sống trên, chúng ta chỉ có thể tiếp cận theo phía lấy tài liệu trực tiếp tự service liên quan. Từ bỏ EmployeeID, điện thoại tư vấn sang service Employee, tự StoreID thì call sang service Store…để lấy các thông tin phải hiển thị. Việc này sẽ dẫn đến tiếp xúc liên service (inter-service communication).

Trong bản vẽ xây dựng Microservices, càng giảm bớt gọi liên service càng tốt vì các service ra đời để phục vụ bên phía ngoài chứ không phải để giao hàng liên service, dẫn mang đến performance khối hệ thống sẽ bị giảm, vày nếu thiết kế không tốt, những service bị die hầu như do các service gọi cho nhau gây quá download chứ trường đoản cú client chưa có thể quá download :).

Xem thêm: Cách Làm Kim Chi Bắp Cải Ăn Liền, Kim Chi Cải Thảo

Ngoài ra, gọi liên service sẽ sở hữu overhead vì vẫn đang còn giao thức kết nối đi kèm theo (như HTTPS, Protobuf..) buộc phải phải hạn chế. Vì đó, cách thuận lợi tiếp cận độc nhất vô nhị là sử dụng cache để chưa hẳn request nhiều đến các service mà chỉ việc mò vào cache. Có thể sử dụng Redis hoặc memcache cho tuấn kiệt này. Trách nhiệm còn lại của doanh nghiệp chỉ là làm thế nào clear cache một cách hiệu quả mà thôi.

Như vậy, với cùng một đơn hàng, bạn sẽ cần thêm 3 request đến cache nhằm fetch thêm thông tin (employee, store với warehouse) trước lúc trả về client để hiển thị không thiếu thốn thông tin.

Teamcrop sẽ làm cầm nào?

Ở trên là phương pháp mình khuyến nghị và mọi người cũng suy nghĩ ra thuận lợi vì nó khá cơ bạn dạng cho các ứng dụng web hiện nay đại. Mặc dù nhiên, dự án Teamcrop không theo cách này và theo 1 cách “phức tạp” hơn nhiều và tất yếu nó sẽ cấp tốc hơn phương pháp ở trên.

Trong bài xích tiếp theo, bản thân sẽ chia sẻ cụ thể cách Teamcrop đã xử lý bài toán này như thế nào, tận dụng web socket, service worker của trình chăm chút để tăng tốc buổi tối đa cho vấn đề hiển thị dạng này.

Xem thêm: Chỉ Số Pmi Là Gì - Vai Trò & Cách Tính Chỉ Số Pmi Chi Tiết

Hy vọng bạn sẽ thích những thông tin này với sẽ liên tiếp theo dõi loạt bài chia sẻ kỹ thuật tăng tốc độ cho phong cách thiết kế Microservices.

P.S: Teamcrop.com là hệ thống ERP dành cho chuỗi bạn dạng lẻ và luôn luôn tìm tìm lập trình viên PHP, nếu như bạn biết PHP, ái mộ xây dựng các dự án web lớn, phức hợp trên những phong cách xây dựng mới như Microservices, technology mới như Docker thì chớ ngần ngại tương tác với Tuấn (qua email tuanmaster2012