TsgcWSCircuitBreaker方法 › IsConnectionAllowed

IsConnectionAllowed 方法

当 ServerKey 回路处于 Open 状态时返回 False 的服务器端守门员。

语法

function IsConnectionAllowed(const aIP: string): Boolean;

参数

名称类型描述
aIPconst string入站连接的对端 IP 地址。用于日志记录和未来的按 IP 指标;实际决策针对 ServerKey 进行。

返回值

当 ServerKey 断路器处于 Closed 或 HalfOpen 状态时返回 True,处于 Open 状态时返回 False。当 Enabled 为 False 时无条件返回 True。(Boolean

备注

服务器端自我保护助手:委托给 IsCallAllowed(ServerKey)。从服务器的 OnConnect / BeforeAccept 处理器中调用,当断路器处于 Open 状态时(例如某个关键下游服务宕机时),如果返回 False 则断开对端连接,以阻止新客户端进入。此方法仅返回 True / False,不会自行记录或断开连接。此组件的主要用途是客户端对出站 HTTP API 调用的保护;连接许可是次要的服务器集成钩子。

示例

procedure TForm1.WSServerConnect(Connection: TsgcWSConnection);
begin
  if not sgcWSCircuitBreaker1.IsConnectionAllowed(Connection.PeerIP) then
  begin
    Connection.Disconnect;
    Exit;
  end;
  sgcWSCircuitBreaker1.RegisterConnection(Connection.PeerIP);
end;

返回方法