2.2 Thực hiện quản lý tích hợp dữ liệu tập trung
2.2.3 Chi tiết về hàng đợi
Hàng đợi Queue: Đóng vai trò như là người gác cổng và bảo vệ các thành phần parser trong tình trạng quá tải với việc xử lý quá nhiều dữ liệu đến. Số lượng dữ liệu luôn ở mức tối đa mà parser có thể xử lý trong một giây và khi vượt qua ngưỡng này, các parser có thể bị mất các dữ liệu do các luồng xử lý bị quá tải và phát sinh các lỗi ngoại lệ. Để giải quyết vấn đề này, việc sử dụng một thành phần hàng đợi là bắt buộc.
Kéo và đẩy dữ liệu: Khi chúng ta gửi các dữ liệu trực tiếp tới thành phần parser bằng shipper, về cơ bản là đang thực hiện đẩy các dữ liệu và mong chờ các parser có thể xử lý cùng với tốc độ mà các dữ liệu đang đẩy vào nó. Nhưng thực tế thì luôn là chậm hơn, vì parser phải xử lý quá nhiều việc. Ở đây, chúng ta lựa chọn sử dụng một hàng đợi queue, để các parser thực hiện kéo các dữ liệu ra ở tốc độ mà nó có thể xử lý. Khi tỷ lệ này là quá cao và việc parser không thể kéo tất cả các dữ liệu xử lý đồng thời, thì các dữ liệu sẽ được lưu trữ vào một hàng đợi. Chờ khi parser quay trở lại sẽ tiếp tục kéo các dữ liệu từ hàng đợi ra để xử lý và thực hiện xóa đi các dữ liệu ở hàng đợi. Việc bổ sung thêm hàng đợi là giải pháp tốt nhất cho việc giải quyết các vấn đề quá tải tạm thời cho server tập trung.
Database phát sinh vấn đề: Trong trường hợp server DB bị dừng lại hoặc bị lỗi trong thời gian đang thực hiện xử lý, các parser sẽ không tìm thấy đích hợp lệ để gửi dữ liệu đi. Lúc này đầu vào của parser càng lúc càng nhận được nhiều dữ liệu từ thành phần shipper gửi sang và bắt đầu xảy ra mất mát dữ liệu. Tất cả các dữ liệu tiếp theo được sinh ra và gửi đến đây đều bị mất. Trong trường hợp này, hàng đợi queue lại cho thấy được vai trò quan trọng của nó, cho phép các parser dừng kéo các dữ liệu cho việc xử lý và để cho nó lưu trữ trong hàng đợi. Khi các phiên làm việc của DB hoạt động trở lại, nó sẽ khôi phục lại tất cả các dữ liệu, kéo ra để tiếp tục xử
lý với parser và gửi chúng tới DB. Có thể mất nhiều thời gian cho parser làm việc với lưu lượng hàng đợi lớn như vậy nhưng kết quả là giữ được các dữ liệu sinh ra ở các thời gian tiếp theo không bị mất đi.
Một lớp đệm an toàn: Trong một số trường hợp các file dữ liệu có thể bị phân tán ở các server khác nhau và chúng ta muốn gửi chúng tới một server tập trung. Bằng cách sử dụng một hàng đợi dữ liệu, có thể giữ cho dữ liệu được an toàn. Gửi dữ liệu mã hóa và hạn chế truy cập tới một cổng mở duy nhất trên server xử lý hàng đợi. Điều này là quan trọng cho việc bảo mật các dữ liệu với giải pháp tích hợp dữ liệu tập trung và đặc biệt là khi đề cập tới môi trường sử dụng các server phân tán.