Mô hình microservice & Canonical


9

Khi tôi đang đọc về microservice trên trang web này , tôi đã xem qua tuyên bố dưới đây. Một lược đồ chính tắc có nghĩa là gì? Nó không giống như mô hình miền?

Mẫu Kiến trúc microservice cũng từ chối các phần khác của SOA, chẳng hạn như khái niệm về một lược đồ chính tắc.


Bạn có thể biết nguồn gốc của tuyên bố đó? (cho mục đích liên kết)
Jack

Chắc chắn Jack, nó ở đây - nginx.com/blog/int sinhtion
Punter Vicky

Tôi cho rằng bài viết Wikipedia này là những gì bạn đang tìm kiếm. Tuy nhiên, tôi không tìm thấy bài viết dễ hiểu.
Arseni Mourzenko

Cảm ơn @ArseniMourzenko. Tôi tin ngay cả trong kiến ​​trúc microservice, yêu cầu và phản hồi phải tuân thủ một số mô hình dữ liệu. Không thể hiểu được tại sao nó được gọi là bị từ chối bởi kiến ​​trúc microservice.
Punter Vicky

2
Một số mô hình dữ liệu có, nhưng dường như đối với tôi, bài viết đang đề cập đến một mô hình dữ liệu "chia sẻ" hoặc "chung" giữa 2 hoặc nhiều dịch vụ. Lược đồ Canonical là một mẫu có nghĩa là để lưu các dịch vụ trong các biến đổi dữ liệu thời gian chạy. Một "ngôn ngữ" chung giữa các dịch vụ. Vì vậy, có vẻ như bài báo đang nhấn mạnh vào sự độc lập hoàn toàn của MS khỏi "hệ sinh thái" nơi nó sống. Lấy ví dụ như đề cập đến ESB. ESB thường yêu cầu một mô hình dữ liệu doanh nghiệp (tin nhắn) sẽ phổ biến cho mọi người trong xe buýt. MS từ chối để được gắn vào bất kỳ co thắt hệ thống bên ngoài.
Laiv

Câu trả lời:


5

Xin lỗi trước vì đã dựa vào nhận xét @ArseniMourzenko, nhưng một khi tôi bắt đầu đọc Wikipedia tôi đã hiểu ngay ý nghĩa của Lược đồ Canonical .

Ở đây bình luận của OP tập trung vào sự nghi ngờ thực sự

Tôi tin ngay cả trong kiến ​​trúc microservice, yêu cầu và phản hồi phải tuân thủ một số mô hình dữ liệu.

Một số mô hình dữ liệu có, nhưng dường như bài viết đang đề cập đến một mô hình dữ liệu "chia sẻ" hoặc "chung" giữa 2 hoặc nhiều dịch vụ.

Các Canonical Schema là một mô hình có nghĩa là để tiết kiệm các dịch vụ từ trong biến đổi dữ liệu thời gian chạy. Nó cũng tiết kiệm cho bạn khỏi việc sao chép mã. Nhưng sau đó bạn cũng đang ghép dịch vụ của mình với một mô hình dữ liệu bên ngoài. (Xem sơ đồ tại trang Wikipedia được liên kết ở trên)

Đó là một loại "ngôn ngữ" chung giữa các dịch vụ.

Vì vậy, có vẻ như bài báo đang nhấn mạnh vào sự độc lập hoàn toàn của MS khỏi "hệ sinh thái" nơi nó sống.

Lấy ví dụ như đề cập đến ESB.

Họ cũng rất tránh sử dụng ESB và thay vào đó thực hiện chức năng giống ESB trong chính các dịch vụ siêu nhỏ.

ESB thường yêu cầu một mô hình dữ liệu doanh nghiệp (tin nhắn) sẽ phổ biến cho mọi người gắn liền với xe buýt.

Vì vậy, trở lại bài viết, dường như tác giả đang chỉ ra thực tế rằng MS từ chối gắn liền với bất kỳ hệ thống bên ngoài nào (và các ràng buộc của họ) .


Cảm ơn @Laiv. Tôi sẽ thưởng tiền thưởng trong 9 giờ - vì vậy, hạn chế tôi :)
Punter Vicky

1

Microservice là tất cả về sự gắn kết chặt chẽ và khớp nối lỏng lẻo. Trong microservice, bạn có sự gắn kết chặt chẽ, nhưng giữa microservice, bạn có khớp nối lỏng lẻo và do đó bạn muốn tránh mọi lược đồ chia sẻ hoặc hợp đồng dữ liệu. Nếu bạn thấy rằng bạn có các dịch vụ siêu nhỏ thực hiện các cuộc gọi đồng bộ với nhau theo cách yêu cầu họ chia sẻ một lược đồ chung, đó có thể là một dấu hiệu cho thấy bạn đã xác định ranh giới dịch vụ của mình không chính xác.

Các dịch vụ vi mô phải được liên kết chặt chẽ với Bối cảnh bị ràng buộc, theo cách nói của Thiết kế hướng tên miền.


If you find that you have microservices making synchronous calls. Không nhất thiết phải gọi không đồng bộ. Nó cũng có thể xảy ra với các tin nhắn không đồng bộ ESB. Tôi nghĩ rằng nó tập trung vào thực tế để được kết hợp với các lược đồ chia sẻ hoặc hợp đồng dữ liệu. Tôi giả định rằng trong kiến ​​trúc MS, nên tránh mọi giao tiếp p2p giữa các dịch vụ. Giao tiếp nên diễn ra thông qua các ứng dụng thay vì bất kỳ lớp bên trong (lớp dịch vụ bên trong) hoặc lớp bên ngoài (ESB, hàng đợi, v.v.)
Laiv
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.