Skip to content
bitzorcas
EN

Reference

配额构建块

用量配额管理 — PlatformBilling 模块提供基于订阅的权益、用量记录、配额检查和超额执行策略。

Last updated

BitzOrcas 通过 PlatformBilling 模块实现配额管理。它提供基于订阅的权益跟踪、用量记录和可配置的超额执行策略。

架构

┌─────────────────────────────────────────────┐
│ PlatformBilling │
│ │
│ 计划 → 订阅 → 权益 │
│ │ │
│ ▼ │
│ 用量记录 │
│ │ │
│ ▼ │
│ 配额检查 │
│ (允许/拒绝/警告) │
└─────────────────────────────────────────────┘

核心抽象

QuotaService

public class QuotaService
{
public QuotaCheckResult CheckQuota(
TenantId tenantId,
string entitlementKey,
long requestedDelta);
}

EntitlementResolver

从租户的活跃订阅 + 目录解析有效权益:

租户 → 活跃订阅 → 计划 → 目录产品 → 权益

OverQuotaBehavior

租户超额时可配置的行为:

策略描述
Deny阻止操作(HTTP 429 或 403)
Warn允许但添加警告头/通知
Allow无执行(用于内部/特权租户)

关键实体

实体用途
PlatformBillingPlanEntity计费计划定义(免费、专业、企业)
PlatformBillingSubscriptionEntity租户的活跃订阅
PlatformBillingInvoiceEntity计费发票
PlatformBillingUsageRecordEntity用量跟踪记录

配额检查流程

  1. 权益查找:解析租户的订阅 → 计划 → 目录产品
  2. 用量聚合:汇总当前计费周期的已记录用量
  3. 配额比较:对比已使用 vs 允许值
  4. 执行:应用超额策略(拒绝/警告/允许)

用量记录

模块通过 PlatformBillingService.RecordUsageAsync() 记录用量:

await billingService.RecordUsageAsync(
tenantId,
entitlementKey: "storage.files",
delta: 1);

配置

{
"PlatformBilling": {
"DefaultOverQuotaBehavior": "Deny",
"BillingCycleDays": 30
}
}

另见