Các mẫu thành phần
Thành phần phần mềm có nghĩa là cách để xây dựng sản phẩm phần mềm của bạn. Về cơ bản, nó xử lý sơ đồ kiến trúc phần mềm cấp cao trong đó các mô-đun khác nhau của phần mềm của bạn sẽ giao tiếp cho các mục tiêu kinh doanh cụ thể. Trong chương này, chúng ta sẽ tìm hiểu về các mẫu cấu thành phần mềm khác nhau được sử dụng rộng rãi trong các tổ chức. Trong microservice, chúng tôi chia từng chức năng thành một quy trình. Mỗi dịch vụ này sẽ độc lập và đầy đủ về bản chất.
Phân rã chức năng đóng một vai trò quan trọng trong việc xây dựng microservices của bạn. Nó cung cấp sự nhanh nhẹn, linh hoạt và khả năng mở rộng cho ứng dụng của bạn.
Mẫu tổng hợp
Mẫu tổng hợp là mẫu web đơn giản nhất có thể được triển khai trong khi phát triển một dịch vụ nhỏ. Trong mẫu thành phần này, một mô-đun web đơn giản sẽ hoạt động như một bộ cân bằng tải, có nghĩa là nó sẽ gọi các dịch vụ khác nhau theo yêu cầu. Sau đây là sơ đồ mô tả một ứng dụng web microservice đơn giản với thiết kế tập hợp. Như được thấy trong hình ảnh sau, "Aggregator" chịu trách nhiệm gọi từng dịch vụ khác nhau. Nếu chúng ta cần áp dụng bất kỳ logic nghiệp vụ nào trên kết quả của dịch vụ A, B và C, thì chúng ta có thể triển khai logic nghiệp vụ trong chính bộ tổng hợp.
Một công cụ tổng hợp có thể được hiển thị lại như một dịch vụ khác với thế giới bên ngoài, có thể được những người khác sử dụng bất cứ khi nào được yêu cầu. Trong khi phát triển dịch vụ web mẫu tổng hợp, chúng tôi cần lưu ý rằng mỗi dịch vụ A, B và C của chúng tôi phải có các lớp bộ nhớ đệm riêng và bản chất nó phải là ngăn xếp đầy đủ.
Mẫu proxy
Proxy microservice pattern là một biến thể của mô hình tổng hợp. Trong mô hình này, chúng tôi sẽ sử dụng mô-đun proxy thay vì mô-đun tổng hợp. Dịch vụ proxy có thể gọi từng dịch vụ khác nhau.
Trong mẫu Proxy, chúng ta có thể xây dựng một cấp độ bảo mật bổ sung bằng cách cung cấp một lớp proxy kết xuất. Lớp này hoạt động tương tự như giao diện.
Mô hình chuỗi
Đúng như tên gọi, kiểu bố cục này sẽ tuân theo cấu trúc dây chuyền. Ở đây, chúng tôi sẽ không sử dụng bất kỳ thứ gì ở giữa lớp khách hàng và lớp dịch vụ. Thay vào đó, chúng tôi sẽ cho phép khách hàng giao tiếp trực tiếp với các dịch vụ và tất cả các dịch vụ sẽ được liên kết theo cách mà đầu ra của một dịch vụ sẽ là đầu vào của dịch vụ tiếp theo. Hình ảnh sau đây cho thấy một microservice mẫu chuỗi điển hình.
Một nhược điểm lớn của kiến trúc này là máy khách sẽ bị chặn cho đến khi toàn bộ quá trình hoàn tất. Vì vậy, bạn nên giữ độ dài của chuỗi càng ngắn càng tốt.
Mẫu Microservice nhánh
Branch microservice là phiên bản mở rộng của mô hình tập hợp và mô hình chuỗi. Trong mẫu thiết kế này, khách hàng có thể giao tiếp trực tiếp với dịch vụ. Ngoài ra, một dịch vụ có thể giao tiếp với nhiều dịch vụ cùng một lúc. Sau đây là biểu diễn sơ đồ của Branch Microservice.
Mẫu microservice nhánh cho phép nhà phát triển định cấu hình động các lệnh gọi dịch vụ. Tất cả các cuộc gọi dịch vụ sẽ diễn ra đồng thời, có nghĩa là dịch vụ A có thể gọi dịch vụ B và C đồng thời.
Mẫu tài nguyên được chia sẻ
Mẫu tài nguyên được chia sẻ thực sự là một tập hợp của tất cả các loại mẫu đã đề cập trước đó. Trong mô hình này, máy khách hoặc bộ cân bằng tải sẽ giao tiếp trực tiếp với từng dịch vụ bất cứ khi nào cần thiết. Đây là mô hình thiết kế hiệu quả nhất được áp dụng rộng rãi trong hầu hết các tổ chức. Sau đây là biểu diễn sơ đồ của mẫu thiết kế Tài nguyên được chia sẻ.