banner
Jan 25, 2023
109 Views

[Phần 2] Reactor pattern 101

Written by
banner

phần 1 chúng ta đã nói qua về các khái niệm chính tạo nên reactor pattern như kiến trúc đơn luồng và non-blocking I/O.

Ở phần 2 này chúng ta sẽ ghép nối các kiến thức ở bài 1 thành reactor pattern.

Reactor Pattern hoạt động như thế nào ?

Reactor Pattern
  1. (a) Khi có 1 request tới I/O, request đó được chuyển tới Event Demultiplexer. App sẽ gửi thêm 1 hàm xử lý để gọi sau khi request đó hoàn thành. (b) Requests sẽ được gửi đi và quyền điều khiển được trả lại cho ứng dụng để chạy tiếp các khối lệnh phía sau trong lúc chờ I/O.
  2. Sau khi xử lý xong yêu cầu của request, các sự kiện cùng với hàm xử lý được đưa vào Event Queue.
  3. Tại bước này Event Loop sẽ lặp qua các cặp sự-kiện:hàm-xử-lý.
  4. Các hàm xử lý của request I/O tương ứng được thực thi.
  5. (a) Sau khi hàm xử lý được thực thi, quyền điều khiển được trả lại cho Event Loop. (b) Khi hàm xử lý thực thi có thể sẽ gọi thêm các requests I/O khác và các sự kiện đó sẽ được đưa tiếp vào Event Demultiplexer (1).
  6. Sau khi tất cả các cặp sự-kiện:hàm-xử-lý trong Event Queue đều đã được Event Loop xử lý, vòng lặp lại dừng ở Event Demultiplexer để chờ chu kỳ tiếp theo hoạt động.

Nếu không còn việc gì phải làm trong Event Demultiplexer nữa thì ứng dụng thoát.

Source:

https://dev.to/olatisunkanmi/the-reactor-pattern-in-nodejs-49j6

https://subscription.packtpub.com/book/web-development/9781783287314/1/ch01lvl1sec09/the-reactor-pattern

Article Categories:
dev
banner

Leave a Reply

Your email address will not be published. Required fields are marked *