Tôi đang thiết kế chương trình phụ trợ cho một ứng dụng web Java mới và đang cố gắng quyết định có sử dụng Bus sự kiện hay không; cụ thể là Guava EventBus
.Khi nào cần sử dụng Xe buýt sự kiện?
Hầu hết các yêu cầu phía máy chủ sẽ đồng bộ: nghĩa là người dùng đang yêu cầu dữ liệu và cần phản hồi trong vòng vài giây. Tuy nhiên, cũng có khá nhiều yêu cầu có thể không đồng bộ và "cháy và quên" ở phía máy khách. Vì vậy, miễn là chúng được xử lý, khách hàng có thể chăm sóc ít hơn nếu mất 2 giây để xử lý hoặc 2 giờ.
Đối với các yêu cầu không đồng bộ này, tôi dự định sẽ nghe servlet tại URL được ánh xạ xuất bản các yêu cầu tới hàng đợi. Một người tiêu dùng sau đó sẽ dequeue mỗi yêu cầu và định tuyến nó trên để xử lý thích hợp. Đây là nơi mà EventBus
có thể hoặc không được phát. Logic nghiệp vụ để định tuyến yêu cầu tới trình xử lý chính xác khá phức tạp. Thông thường một tuyến đường Camel sẽ là giải pháp hoàn hảo. Trong trường hợp sử dụng của tôi, tôi tự hỏi liệu tôi có thể kết nối một loạt các "bộ xử lý" (event handler) cho cùng một bus sự kiện hay không, và sau đó có mỗi lần kích hoạt và nhận các sự kiện đến và từ mỗi khác cho đến khi kết quả cuối cùng là được sản xuất.
Tôi muốn nói rằng tôi đã khám phá bằng cách sử dụng Apache Camel và tôi tin rằng Camel là công cụ thích hợp cho công việc ở đây. Đáng buồn thay, vì những lý do nằm ngoài phạm vi của câu hỏi này, tôi sẽ không sử dụng nó. Vì vậy, tôi bắt đầu gợi lên các giải pháp giống như Camel, đó là cách tôi đến tại số EventBus
của Guava. Nhưng nó có thể không phải là một sự thay thế phù hợp.
Tôi đoán tôi đang tìm kiếm phân loại sự cố khi giải quyết mẫu Event Bus
và sau đó tôi cần xác định xem mẫu đó có khớp với trường hợp sử dụng của tôi ở đây hay không.
Cảm ơn @ColinD (+1) - vâng tôi đoán tôi đã nghĩ rằng mỗi người đăng ký/bộ xử lý có thể trả lại một sự kiện xung quanh xe buýt sự kiện như pinball bên trong máy pinball. Tại mỗi thuê bao, sự kiện sẽ được sửa đổi, giống như cách mà 'Message' /' Exchange' được sửa đổi bên trong các bộ xử lý Camel. Tôi vẫn bị giằng xé giữa việc sử dụng nó hoặc chỉ xử lý các bộ xử lý nối thủ công với nhau. Đó là sự tách rời mà tôi quan tâm, nhưng 'EventBus' vẫn không cảm thấy là giải pháp tốt nhất (không phải Lạc đà). Tôi cho bạn kiểm tra màu xanh lá cây và sẽ báo cáo lại với quyết định và kết quả của tôi. Cảm ơn một lần nữa! – IAmYourFaja
Đó là loại Người hòa giải. – zgulser