2016-12-07 22 views
6

Tôi nghe Amazon sử dụng HTTP cho kiến ​​trúc dựa trên microservice của nó. Một cách khác là sử dụng hệ thống nhắn tin như hệ thống RabbitMQ hoặc Solace. Cá nhân tôi có kinh nghiệm với kiến ​​trúc microservice dựa trên Solace, nhưng không bao giờ với REST.
Bất kỳ ý tưởng nào khác nhau triển khai giải đấu lớn như Amazon, Netflix, UK Gov vv sử dụng?
khía cạnh khác, trong microservices, sau điều được yêu cầu (ngoài những người khác):
* Pattern phù hợp với
* Async tin nhắn .. hệ thống tiếp nhận có thể được xuống
* Xuất bản đăng ký
* kiện tải cache .. tức là trên khởi động, một dịch vụ có thể cần phải tải tất cả dữ liệu từ một vài dịch vụ khác và phải được thông báo khi dữ liệu được tải hoàn toàn, để nó có thể 'biết' rằng nó đã sẵn sàng cho các yêu cầu dịch vụ
được thực hiện với nhắn tin thay vì REST. Tại sao mọi người nên sử dụng REST (ngoại trừ API công khai). Cảm ơn.Microservices: REST vs Messaging

+0

HTTP, REST là thông số kỹ thuật. RabbitMQ/Solace là những người môi giới thông điệp. Câu hỏi của bạn là "các ứng dụng dịch vụ dựa trên HTTP/REST" là gì? – k1133

+0

hmm có thể sử dụng các trường hợp REST nên được sử dụng và nơi sử dụng tin nhắn, hoặc kết hợp .. tại sao điều này và không phải là loại –

Trả lời

9

Tiêu chuẩn mà tôi đã theo trong quá khứ là sử dụng dịch vụ web khi yêu cầu chính là tốc độ (và mất dữ liệu không quan trọng) và nhắn tin khi yêu cầu chính là độ tin cậy. Như bạn đã nói, nếu hệ thống tiếp nhận bị hỏng, một thông báo sẽ nằm trên hàng đợi cho đến khi hệ thống trở lại để xử lý nó. Nếu đó là một điểm cuối REST và nó xuống, yêu cầu sẽ chỉ đơn giản là thất bại.

+4

+1, Bạn có thể nghĩ về ý nghĩa liên kết của truyền thông đồng bộ (REST), nếu một thất bại tất cả các người phụ thuộc của nó sẽ thất bại, do đó, ngoài việc mất dữ liệu nó có thể gây ra một phản ứng dây chuyền mà có thể mang lại cho toàn bộ hệ thống xuống. –

+0

@SeanFarmar đây là cái mà tôi gọi là Hiệu ứng Domino. Một vấn đề liên quan là Hiệu ứng Ripple, nơi những thay đổi trong một dịch vụ có thể đòi hỏi những thay đổi trong các dịch vụ hạ lưu. – MattDavey

-2

API REST chỉ sử dụng HTTP. nó là công nghệ thời đại đá khá và không chấp nhận không đồng bộ. nhắn tin. Để nhắn tin cho plugin ở đó, tôi sẽ xem xét Cổng WebSockets -xin lỗi cho các tuyên bố cuối cùng giả mạo

Các vấn đề liên quan