Ví dụ thực tế: TIBCO Rendezvous.
Dữ liệu được gửi qua multicast với số thứ tự. Một khách hàng phát hiện một số thứ tự thiếu sẽ gửi ra một messge trên nhóm multicast "hey, tôi bị mất gói 12345". Máy chủ sẽ phát lại dữ liệu đó. Máy chủ có một lượng dữ liệu có thể cấu hình để đệm trong trường hợp máy khách yêu cầu.
Vấn đề:
Hãy tưởng tượng có một khách hàng duy nhất giảm một nửa trong số các gói tin của mình, và 100 khách hàng khỏe mạnh. Máy khách này gửi yêu cầu truyền lại cho mọi gói khác. Máy chủ bắt đầu gây ra đủ tải trên một trong những máy khách khỏe mạnh như vậy mà nó bắt đầu thả các gói và yêu cầu truyền lại. Tải bổ sung từ đó làm cho một ứng dụng khách khỏe mạnh khác bắt đầu yêu cầu truyền lại. Và cứ thế. Một kết quả thu hẹp tắc nghẽn.
Tibco cung cấp cách giải quyết, cắt đứt người đăng ký gửi quá nhiều yêu cầu truyền lại. Điều này làm cho nó khó khăn hơn cho một thuê bao duy nhất gây ra một sự sụp đổ tắc nghẽn.
Cách giải quyết khác để hạn chế nguy cơ tắc nghẽn sụp đổ là để giới hạn số lượng dữ liệu mà một máy chủ sẵn sàng truyền lại.
Tibco cũng nên cung cấp chẩn đoán trong client và server là liệu multicast hoặc unicast yêu cầu truyền lại, và truyền lại chính nó. Họ không. (Đối với máy chủ, bạn có thể unicast truyền lại nếu chỉ có một khách hàng yêu cầu nó trong một cửa sổ thời gian nhất định, cho khách hàng mà bạn có thể unicast yêu cầu truyền lại nếu máy chủ đã nói với bạn - trong gói truyền lại - rằng bạn là người duy nhất yêu cầu truyền lại và xin vui lòng unicast các yêu cầu trong tương lai)
Về cơ bản bạn sẽ phải quyết định giữa mức độ mạnh mẽ bạn muốn đảm bảo rằng khách hàng nhận được dữ liệu so với nguy cơ sụp đổ tắc nghẽn. Bạn sẽ phải đoán trước xem gói tin bị bỏ đi ở đâu và việc truyền lại có được gửi đi một cách hiệu quả nhất hay không.Nếu máy chủ hiểu dữ liệu và có thể quyết định không gửi lại dữ liệu nếu có dữ liệu cập nhật được gửi đi (điều đó làm cho việc truyền lại không liên quan), bạn ở vị trí tốt hơn nhiều so với khung công tác như Tibco RV.
Đôi khi việc hiểu dữ liệu có thể dẫn đến giả định sai. Ví dụ, dữ liệu thị trường - nó có vẻ lúc đầu OK để không truyền lại một báo giá khi có một báo giá cập nhật. Nhưng sau đó, bạn có thể thấy rằng một thuê bao đã giữ một lịch sử báo giá, không chỉ cố gắng theo dõi các báo giá hiện tại. Có lẽ bạn có thể có các yêu cầu khác nhau tùy thuộc vào thuê bao, và một số khách hàng sẽ thích unicast TCP vs multicast.
Tại một thời điểm nào đó, bạn sẽ cần đưa ra quyết định tùy ý trên máy chủ về số lượng dữ liệu cần đệm trong trường hợp truyền lại hoặc khách hàng chậm.
Có bao nhiêu người nhận? Nếu bạn có ít hơn mười người nhận, thì bạn có thể xem xét một số thông tin liên lạc từ nút đến nút. – mcoolive