Các mô hình gửi nhận thông điệp trong JMS

Một phần của tài liệu Tìm hiểu framework spring và xây dựng ứng dụng quản lý nhạc phía client (Trang 51)

JMS hỗ trợ hai loại mô hình gởi nhận thông điệp: point – to - point và publish – subscribe. Những mô hình gởi nhận thông điệp đôi khi được gọi là “miền gởi nhận thông điệp” (messaging domain). Gởi nhận thông điệp point – to - point và publish – subscribe thường được viết tắt là p2p và pub/sub. Hiểu theo nghĩa đơn giản nhất, publish – subscribe là việc gởi thông điệp từ một tới nhiều, còn point – to - point là việc gởi thông điệp một - một.

40 2.3.3.1 Point – to – point

Mô hình point – to – point (Hình 2-15) cho phép các JMS client gởi và nhận thông điệp đồng bộ lẫn bất đồng bộ qua các kênh ảo gọi là queue (hàng đợi). Trong mô hình point – to - point, message producer được gọi là sender và message consumers được gọi là receivers. Một điểm đặc trưng của mô hình point – to - point là các thông điệp được gửi tới queue chỉ được nhận bởi một và chỉ một receiver, mặc dù có thể có nhiều receiver cùng nghe trên một queue để nhận cùng thông điệp.

Point – to - point hỗ trợ gởi nhận thông điệp bất đồng bộ theo kiểu “fire and forget” cũng như gởi nhận thông điệp đồng bộ. Point – to - point có xu hướng chặt chẽ hơn mô hình publish – subscribe vì sender thường biết thông điệp sẽ được sử dụng như thế nào và ai nhận được nó.

Mô hình point – to - point hỗ trợ cân bằng tải, cho phép nhiều receiver cùng nghe trên một queue, phân tán được tải trọng. JMS provider quản lý queue, đảm bảo rằng một message chỉ được tiêu thụ một và chỉ một lần bởi receiver tiếp theo trong nhóm.

2.3.3.2 Publish - subscribe

Trong mô hình publish – subscribe (Hình 2-16), các thông điệp được publish vào một kênh ảo gọi là topic. Message producer được gọi là publisher và message consumers được gọi là subsciber. Không như mô hình point – to - point, thông điệp được publish vào topic có thể được nhiều subscriber nhận. Kỹ thuật này đôi khi được gọi là “phát sóng” một thông điệp. Mỗi subscriber sẽ nhận được một bản sao của từng thông điệp.

Hình 2.15: Hai mô hình gửi nhận message trong JMS

41 Thông điệp trong mô hình publish - subscribe được phát tự động tới các consumer mà không cần chúng yêu cầu thông điệp.

Mô hình publish - subscribe có xu hướng thiếu chặt chẽ hơn mô hình point – to - point vì publisher thường không biết có bao nhiêu subscriber hoặc subscriber sẽ làm gì với thông điệp. Ví dụ, giả sử một thông điệp được publish vào topic mỗi khi ứng dụng có exception. Publisher chỉ có trách nhiệm publish mỗi khi có exception. Publisher không biết và thường không quan tâm thông điệp sẽ được sử dụng như thế nào.

Có nhiều loại subscriber khác nhau trong mô hình publish - subscribe. Subscriber không lâu dài là những subscriber đăng ký tạm, chỉ nhận thông điệp khi chủ động nghe topic. Subscriber lâu dài sẽ nhận bản sao của tất cả thông điệp được đăng, kể cả khi chúng “offline” lúc thông điệp được đăng.

Một phần của tài liệu Tìm hiểu framework spring và xây dựng ứng dụng quản lý nhạc phía client (Trang 51)

Tải bản đầy đủ (PDF)

(93 trang)