TsgcWSCircuitBreaker › 方法 › IsConnectionAllowed
当 ServerKey 回路处于 Open 状态时返回 False 的服务器端守门员。
function IsConnectionAllowed(const aIP: string): Boolean;
| 名称 | 类型 | 描述 |
|---|---|---|
aIP | const 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;