聊天室场景下,消息丢弃策略

聊天室场景下,消息量较大时,消息丢弃策略是什么
发布时间: 2019-01-29 11:36

回答:

聊天室场景下,融云服务端默认单个聊天室中上行消息处理能力是每 200 毫秒 40 条,其中 20 条为高优先级消息使用配额,另外 20 条为高优先级和低优先级消息共同使用。

在聊天室消息量较大的情况下,融云服务器会按消息发送的时间顺序,将超出消费上限的最新消息丢弃,确保服务器稳定。

针对以上情况,为保证聊天室中重要消息不被丢弃,融云提供了以下服务:

1、聊天室用户白名单功能,白名单中用户发送的消息受到保护,在聊天室消息量较大的情况下也不被丢弃。

2、聊天室消息白名单功能,该名单中的消息受到保护,在聊天室消息量较大的情况下也不被丢弃。

3、聊天室消息优先级功能,该功能为设置低优先级的消息类型,在聊天室消息量较大的情况下,此类型的消息将被优先抛弃,确保重要消息不被丢弃。

注:未设置情况下融云的所有消息均为高优先级消息。

以上功能设置后,服务端收到聊天室上行消息时,根据消息类型的设置状态,处理逻辑如下:

a、上行消息为低优先级消息,则占用高优先级和低优先级共有的 20 条消息配额,如配额已经用完,之后收到的低优先级消息将被抛弃,不占用高优先级的配额。

b、上行消息为默认高优先级消息,则先占用高优先级的 20 条消息配额,如配额已经用完,高优先级和低优先级共用的 20 条配额未占用完时,则占用高低优先级消息的共同配额,直到全部占用,之后收到的高、低优先级消息都将被抛弃。

c、上行消息为设置的聊天室消息白名单中的消息或用户白名单中的用户发送的消息时,该类消息不会丢弃,但会占用每 200 毫秒 40 条的消息配额,优先占用高、低优先级消息共用的 20 条配额,其次占用高优先级消息的 20 条配额。配额被全部占用后,收到高、低优先级的消息时都将被丢弃,但如收到白名单中的消息时则不会被丢弃,按时间顺序正常下发。

注:单个聊天室可消费的每 200 毫秒 40 条的上行消息配额,开通专有云后可进行配置。