using Sers.Core.Module.Message;
using Sers.Core.Module.Rpc;
using Sers.ServiceCenter.Entity;
using Vit.Core.Util.ComponentModel.SsError;
namespace Sers.Gover.RateLimit
{
public interface IRateLimit
{
string rateLimitKey { get; }
string rateLimitType { get; }
///
/// 若返回不为null,则对应服务被限流(服务直接返回对应错误)
///
///
///
///
SsError BeforeLoadBalancing(RpcContextData rpcData, ApiMessage requestMessage);
///
/// 若返回不为null,则对应服务被限流(服务直接返回对应错误)
///
///
///
///
///
SsError BeforeCallRemoteApi(RpcContextData rpcData, ApiMessage requestMessage, ApiNode apiNode);
}
}