Nếu bạn muốn các dịch vụ của mình trông giống như trong bức tranh này, thì có:
Không phải là bạn không thể làm điều đó, nhưng hầu hết thời gian nó sẽ có hậu quả xấu. Giao tiếp thông qua REST sẽ không tách rời đáng kể các dịch vụ của bạn. Khi một số giao diện dịch vụ thay đổi, tất cả các dịch vụ phụ thuộc rất có thể phải được thay đổi và triển khai lại. Ngoài ra, trong khi triển khai lại dịch vụ, bạn sẽ phải đặt tất cả các dịch vụ phụ thuộc xuống, đây không được coi là một thiết kế tốt cho các tiêu chuẩn sẵn sàng cao.
Cuối cùng, bạn sẽ có ứng dụng microservice chậm hơn ứng dụng nguyên khối thay thế, nhưng có hầu hết các vấn đề tương tự!
Tôi phải không đồng ý với @Robert Harvey
Tuy nhiên, trên thực tế, một hoặc nhiều dịch vụ siêu nhỏ của bạn (có lẽ là tất cả trong số họ) sẽ nói chuyện với một số kho dữ liệu trung tâm như cơ sở dữ liệu SQL.
Cơ sở dữ liệu tích hợp là antipotype nổi tiếng
Một giải pháp tốt hơn nhiều là sử dụng mẫu đăng ký xuất bản để làm cho giao tiếp giữa các dịch vụ của bạn không đồng bộ:
Xin hãy xem cách CQRS / ES thực hiện phương thức giao tiếp này, Greg Young và những người khác cung cấp hàng tấn video hay về chủ đề này. Chỉ cần google cho từ khóa "CQRS / ES". Theo cách tiếp cận này, mỗi dịch vụ sẽ trở thành nhà xuất bản và người đăng ký cùng một lúc, cho phép các dịch vụ được kết nối ít hơn nhiều.
Dưới đây là một loạt các bài viết hay về microservice làm sáng tỏ những tranh cãi xung quanh chủ đề này. Giải thích rất chi tiết với hình minh họa đẹp.