Sự khác biệt giữa các mẫu nhà xuất bản-thuê bao và lò phản ứng là gì?


11

Các mẫu xuất bản-đăng kýReactor trông rất giống tôi. Chúng khác nhau như thế nào?

Trong cả hai mẫu, một thông điệp sẽ được chuyển đến các thuê bao một cách gián tiếp (người nghe theo mẫu lò phản ứng).

Tôi cảm thấy mô hình quan sát rất giống với hai mẫu khác.

Sự khác biệt chính giữa các mẫu đó là gì?

Câu trả lời:


12

Như tôi có thể thấy từ liên kết, mẫu PubSub không phải là mẫu OOP, mà là mẫu nhắn tin , là mẫu kiến ​​trúc mạng.

Mẫu lò phản ứng là một cái gì đó liên quan đến việc xử lý yêu cầu của máy chủ với vòng lặp sự kiện đơn luồng . Một lần nữa, liên kết hiển thị một số ví dụ hay như Node.js, Netty, Twisted, v.v.

Cuối cùng, Observer là mẫu thiết kế OOP mô tả cách tương tác giữa các đối tượng trong mã OO.

Vì vậy, ba mẫu đó là từ các lĩnh vực khác nhau.


6

Lò phản ứng = vòng lặp sự kiện đơn luồng nhận và xử lý các yêu cầu. Những yêu cầu đó có thể được tải theo lô từ một tệp, thông qua SMTP và / hoặc HTTP. Các phản hồi đồng thời được xử lý được phân phối khi sẵn sàng thay vì tuần tự.

Nhà xuất bản phát ra. Thuê bao tiêu thụ.

Nhà xuất bản + Người đăng ký = Mẫu người quan sát (Mẫu đầu tiên thiết kế). Các quan sát viên bắn liên tiếp và thường chặn cho đến khi hoàn thành.


2

PubSub liên quan nhiều hơn đến Hàng đợi Nhắn tin (MQ). Nó liên quan đến cách các nút nhận thông điệp không đồng bộ trong một hệ thống phân tán.

Mẫu lò phản ứng có liên quan nhiều hơn đến các sự kiện không đồng bộ. Ví dụ, các ổ cắm không chặn sử dụng mẫu lò phản ứng để phân phối các sự kiện mạng: READ, WRITE, CONNECT, ACCEPT

Bạn có thể kiểm tra CoralReactor để hiểu rõ hơn về mẫu lò phản ứng.

Tuyên bố miễn trừ trách nhiệm : Tôi là một trong những nhà phát triển của CoralReactor.

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.