关键词:客流监控、4级预警、瞬时承载量、实时计算、告警链路、自动熔断
适用读者:后端开发、SRE、系统架构师、智慧景区项目负责人
一、问题的量化:瞬时客流的数学本质
去年国庆假期,某 4A 景区下午 2 点迎来客流峰值,瞬时在园人数达到核定承载量的 92%,闸机口排队超 40 分钟,索道站台人挤人,投诉量一天涨 5 倍。文旅部数据显示,节假日近三成景区出现过瞬时客流超载。
从工程视角,瞬时客流超载的数学本质是:
在园人数(t) = 入园速率(t) × 平均停留时长(t)很多景区只盯全天总人数(日承载量),忽略了"某一时刻园内到底有多少人"。日承载量是"一天能进多少人",瞬时承载量才是"某一刻最多能待多少人"——后者才是安全与体验的约束条件。系统要解决的,就是对在园人数(t)的实时计量、分级告警、自动管控。
二、指标定义:核定承载量与瞬时承载量
| 指标 | 定义 | 用途 |
|---|---|---|
| 核定承载量(日) | 保障安全和服务质量前提下,一天最多容纳人数,由文旅部门核定 | 总量控制 |
| 瞬时承载量 | 某一时刻园内允许的最大人数,一般取核定承载量的1/4 ~ 1/3 | 预警核心参照 |
瞬时承载量即预警的满量程(100%),四个预警等级按占比划分。
三、4 级预警:蓝、黄、橙、红
3.1 等级设计表
| 等级 | 触发条件 | 响应动作(系统侧 + 运营侧) | 责任人 |
|---|---|---|---|
| 🔵 蓝色 | 在园人数 ≥ 瞬时承载量 40%,且趋势上升 | 加强通道/观景平台巡视,启用人流疏导广播,备好限流物资 | 值班主管 |
| 🟡 黄色 | ≥ 60%,或单点区域(索道站、打卡点)局部拥挤 | 关闭部分单向通道,热门点位分批放行,暂停现场散客售票,引导去冷门区域 | 值班经理 |
| 🟠 橙色 | ≥ 80% | 预约系统熔断:暂停当日线上预约和线下补票,开足出口通道,增派安保 | 分管副总 |
| 🔴 红色 | ≥ 100% | 停止所有入园渠道,启动应急疏散预案,启用备用出口/应急停车区,向在途游客发劝返提示 | 景区一把手 |
设计要点是四个字:定人、定量、定动作——每个等级有明确的触发阈值、系统动作、人工动作和责任人。
四、系统架构:实时计量 → 规则引擎 → 告警与管控
┌──────────────────────────────────────────┐ 闸机/检票事件 ──►│ │ 预约数据 ──►│ 实时客流计算引擎 (Flink / Redis 计数) │ 摄像头人数 ──►│ - 在园人数 = 入园 - 出园 + 存量快照 │ 索道/接驳数据 ──►│ - 单点区域热度 (区域级计数器) │ └─────────────────┬────────────────────────┘ │ 每秒/每10秒上报 ▼ ┌────────────────────┐ │ 预警规则引擎 │ │ 阈值规则(可配置) │ │ 趋势判断(上升/平稳) │ └──────┬─────────────┘ │ 触发 ┌────────────────┼─────────────────┐ ▼ ▼ ▼ 告警通知(多角色) 自动管控动作 大屏/看板展示 短信/企微/语音 预约熔断、时段下调、 实时人数曲线 暂停售票、广播触发4.1 实时计量:在园人数的准确性问题
在园人数的计算口径建议用事件流方式(Flink 或 Redis 原子计数器):
在园人数 = 前一周期快照 + 本期入园人数 - 本期出园人数数据源包括:闸机核验事件、预约数据、索道/接驳车上下行数据、摄像头 AI 人数(辅助校验)。注意多源数据对账:闸机口径与摄像头口径偏差超过阈值时需要告警,防止单点数据源失效导致误判。
4.2 阈值规则引擎
{"level":"ORANGE","condition":{"metric":"occupancy_rate","op":">=","value":0.80},"trend_check":{"window":"10min","op":"RISING"},"actions":[{"type":"NOTIFY","targets":["duty_manager","vp"]},{"type":"BLOCK_ONLINE_RESERVATION","product_ids":["*"]},{"type":"PAUSE_COUNTER_SALES","channels":["OFFLINE_WINDOW"]},{"type":"BROADCAST","template":"orange_level_guide"}]}规则引擎要点:
- 阈值可配置:40%/60%/80%/100% 阈值按景区核定数据配置,不用改代码;
- 趋势判断:蓝色预警附加"且继续呈上升趋势"条件,避免峰值回落期误报;
- 局部拥挤:黄色预警支持区域级计数器(索道站、热门打卡点独立计数),单点超阈值即触发。
五、与分时预约联动:预警是刹车,预约是方向盘
预警机制是"刹车",分时预约才是"方向盘"。两者配合,从源头减少超载。
5.1 预约名额按时段分配
把全天入园名额拆成 8-12 个时段,每时段设上限。某山岳型景区日承载量 1 万人,拆成 10 个时段,每时段上限 1000 人,瞬时压力立减 80%。
5.2 预警触发后自动收紧时段(自动管控)
把预警规则写进系统,不用人肉协调:
- 🟡 黄色预警触发 → 自动将后续时段预约上限下调 20%;
- 🟠 橙色预警触发 → 自动下调 50%,暂停当日预约;
- 🔴 红色预警 →停止所有入园渠道。
defon_alert(level:str,quota_service:QuotaService):iflevel=="YELLOW":quota_service.shrink_all_future_slots(ratio=0.2)eliflevel=="ORANGE":quota_service.shrink_all_future_slots(ratio=0.5)quota_service.pause_reservation(today=True)eliflevel=="RED":quota_service.pause_all_entry()5.3 数据反哺预测
系统沉淀的历史预约数据可做行情预测:哪几天会爆、几点是高峰、提前多久约满。预测到高峰日,提前 3 天启动错峰宣传,引导预约非高峰时段,甚至用价格杠杆(高峰时段票上浮 10 元)做分流。
杭州西湖免费开放区不搞预约,但周边收费景点严格执行分时预约,节假日投诉率明显下降——这套组合拳对体验的保护是实实在在的。
六、落地步骤(工程 Checklist)
- 确认指标:向文旅部门确认核定承载量、瞬时承载量标准,写入配置中心;
- 能力确认:确认票务系统支持"在园人数实时统计 + 阈值告警"(问清计算口径与刷新频率);
- 预案写入:把四级预警写入应急预案,责任到人(系统里配置值班表);
- 压测演练:开园前做压力测试,模拟橙色预警全流程演练(告警 → 熔断 → 疏导 → 复盘);
- 复盘机制:高峰期每天早中晚三次复盘,把预警触发情况记入运营日志,持续校准阈值。
预警机制不是摆设,是景区运营的"安全带"。平时不起眼,关键时刻能兜底——把阈值写进规则引擎,把动作写进代码,把责任写进值班表,超载问题就有人管、有系统管。