Gần đây tôi đã đọc rất nhiều về các dịch vụ vi mô và đây là một số kết luận tôi đã nhận được cho đến nay (xin vui lòng sửa cho tôi nếu tôi sai ở bất kỳ điểm nào).
- Kiến trúc vi dịch vụ phù hợp với thiết kế hướng tên miền. Thông thường một MS đại diện cho một bối cảnh giới hạn.
- Nếu dịch vụ vi mô A yêu cầu chức năng cư trú trong dịch vụ vi mô B , mô hình của tôi có thể sai và A và B thực sự phải là một dịch vụ vi mô / BC.
- Giao tiếp đồng bộ giữa các dịch vụ vi mô (yêu cầu HTTP trực tiếp) là không tốt, vì nó bất chấp mục đích của dịch vụ vi mô và giới thiệu khớp nối giữa các thành phần.
- Giao tiếp không đồng bộ giữa các dịch vụ là mong muốn. Các dịch vụ nên xuất bản các sự kiện để xếp hàng tin nhắn, vì vậy các dịch vụ khác có thể đăng ký và xử lý một phần của sự kiện hoặc sử dụng nó để sao chép một phần dữ liệu cần thiết cho ngữ cảnh của chúng. Bằng cách này, các dịch vụ có thể xử lý các yêu cầu ngay cả các dịch vụ khác không hoạt động, điều này sẽ không xảy ra trong giao tiếp đồng bộ.
- Nếu dịch vụ vi mô A xuất bản sự kiện, dịch vụ vi mô B đăng ký sự kiện đó và tạo ra một sự kiện mới là kết quả, thì dịch vụ vi mô A không phải là sự kiện mới được xử lý, vì đó sẽ là một sự phụ thuộc vòng tròn. Trong trường hợp này, chúng tôi nên giới thiệu dịch vụ vi mô thứ ba hoặc kết hợp A và B vào dịch vụ vi mô AB .
- Dịch vụ vi mô thực sự là một thuật ngữ sai lệch. Chúng ta nên cố gắng cho các bối cảnh nhỏ, nhưng đó không phải là trường hợp. Thuật ngữ không nên là "dịch vụ vi mô", mà là " đủ lớn để thực hiện dịch vụ công việc ".
- Các dịch vụ vi mô cho phép chúng tôi giới thiệu các chức năng mới dễ dàng hơn và không sợ rằng chúng tôi sẽ phá vỡ toàn bộ hệ thống. Nó có thể được thực hiện bằng cách giới thiệu một dịch vụ mới hoặc tái cấu trúc một trong những dịch vụ hiện có.
- Mỗi dịch vụ vi mô nên có lưu trữ dữ liệu riêng. Sao chép / sao chép dữ liệu là hành vi mong muốn trong kiến trúc này.
Khác với việc xác nhận sự hiểu biết của tôi về kiến trúc này, phần khác của câu hỏi của tôi chủ yếu liên quan đến khám phá dịch vụ. Nếu các dịch vụ đang giao tiếp không đồng bộ và sử dụng hàng đợi sự kiện trung tâm như amazon SQS, điều đó có nghĩa là khám phá dịch vụ không có vị trí của nó trong kiến trúc như vậy?
Dịch vụ không nên có bất kỳ kiến thức nào về các dịch vụ khác trong hệ thống. Họ chỉ nhận thức được bối cảnh và sự kiện của họ mà họ nên xuất bản hoặc đăng ký?