Tôi có một câu hỏi cho cộng đồng microservices. Tôi sẽ đưa ra một ví dụ từ lĩnh vực giáo dục nhưng nó áp dụng cho mọi kiến trúc microservices.Phương pháp tiếp cận thành phần Microservice
Giả sử tôi có dịch vụ sinh viên và giấy phép-dịch vụ với yêu cầu kinh doanh là số lượng sinh viên bị giới hạn bởi giấy phép. Vì vậy, mỗi khi một sinh viên được tạo ra một kiểm tra cấp phép đã được thực hiện. Có nhiều loại giấy phép nên loại giấy phép sẽ phải được bao gồm trong hoạt động.
Câu hỏi của tôi là có cách tiếp cận bạn đã tìm thấy là tốt hơn trong thực tế:
- Xây dựng một dịch vụ tổng hợp mà các cuộc gọi 2 dịch vụ
- nối sinh viên phục vụ để cấp giấy phép dịch vụ để khi createStudent được gọi là sinh-dịch vụ thực hiện cuộc gọi đến cấp phép dịch vụ và chỉ khi điều đó hoàn thành các sinh viên sẽ được tạo
- Sử dụng một kiến trúc dựa trên sự kiện
peop le nói về kiến trúc microservice giống như một đồ thị hơn một hệ thống phân cấp và tùy chọn 1 kinda biến nó thành một hệ thống phân cấp nơi bạn nhận được vật liệu tổng hợp ngày càng thô. Nhược điểm khác là nó tạo ra sự nhầm lẫn như những gì khách hàng dịch vụ thực sự nên sử dụng và có một số trùng lặp xảy ra vì API tổng hợp sẽ phải bao gồm tất cả các tham số cần thiết để gọi các dịch vụ hạ nguồn. Nó có một lợi ích lớn bởi vì nó mang đến cho bạn một nơi tự nhiên để thực hiện việc xử lý lỗi, biên đạo và xử lý sự nhất quán.
Lựa chọn 2 có vẻ như nó có nhược điểm quá:
API cấp phép sẽ phải bị rò rỉ vào API sinh viên để bạn có thể chỉ định hạn chế cấp phép.
nó đặt rất nhiều gánh nặng cho học sinh-dịch vụ bởi vì nó có để xử lý thống nhất trên tất cả các dịch vụ phụ thuộc
- như các dịch vụ khác cần phải phản ứng khi một sinh viên được tạo ra tôi có thể xem đồ thị phụ thuộc một cách nhanh chóng ngoài tầm kiểm soát và dịch vụ sẽ phải xử lý sự phức tạp đó ngoài việc điều khiển từ logic riêng của mình để quản lý sinh viên.
Lựa chọn 3 Trong khi được tách trời, tôi không thực sự nghĩ rằng sẽ làm việc vì đây là tất cả được kích hoạt từ một giao diện người dùng và mọi người không thực sự sử dụng để "đi làm cái gì khác cho đến khi học sinh mới này xuất hiện " tiếp cận.
Cảm ơn bạn cấp phép ứng
Câu hỏi vẫn còn nếu bạn để cuộc gọi đến phần mềm trung gian này theo trách nhiệm của người gọi. Tôi hiểu tùy chọn 1 như một cách để thực thi các cuộc gọi đến 'tạo-sinh viên' tuân theo giới hạn cấp phép. Tất nhiên, nếu cả dịch vụ cấp phép và sinh viên đều có sẵn, dịch vụ tổng hợp không thể thực thi bất kỳ thứ gì. Bạn thấy việc tạo và cấp giấy phép sinh viên hoàn toàn độc lập - với các yêu cầu nghiệp vụ, tôi không và do đó, tùy chọn 2 có ý nghĩa rất nhiều với tôi. Tôi nghĩ, nó tóm tắt cho dù bạn nhấn mạnh yêu cầu kinh doanh hay sự linh hoạt. – schaueho
@schaueho - Tôi nghĩ rằng bạn có thể đơn giản chặn các cuộc gọi đến dịch vụ sinh viên từ thế giới bên ngoài nếu họ không đi qua phần mềm trung gian cấp phép. – Pol