
1) 【一句话结论】
采用分层微服务架构,结合流处理引擎(如Apache Flink)实现多源传感器数据的实时融合与异常检测,通过规则引擎与机器学习模型联动,结合高可用集群部署与加密传输,确保系统7×24小时稳定运行并实时告警,满足≤2秒的告警延迟和≥1M/s的数据吞吐量。
2) 【原理/概念讲解】
老师口吻解释系统核心组件与技术:
3) 【对比与适用场景】
以流处理(Flink)与批处理(Spark)在实时监控场景的对比为例:
| 技术类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 流处理(如Flink) | 实时处理持续数据流,支持低延迟(毫秒级)、状态管理、容错 | 低延迟、支持实时计算、资源可弹性伸缩 | 实时监控、异常告警、实时分析(如垃圾焚烧炉温度突变检测) | 需处理状态,资源消耗较高,对实时性要求高的场景 |
| 批处理(如Spark) | 一次性处理历史数据,适合大规模计算 | 高吞吐、适合离线分析、计算资源利用率高 | 历史数据分析、报表生成、模型离线训练 | 延迟高(分钟级),不适合实时告警 |
4) 【示例】
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='kafka:9092', value_serializer=lambda v: str(v).encode('utf-8'))
def send_sensor_data(device_id, temp, co, status):
topic = 'garbage_furnace_sensors'
data = {
'device_id': device_id,
'timestamp': datetime.now().isoformat(),
'temp': temp,
'co': co,
'status': status
}
producer.send(topic, data)
producer.flush()
// 1. 数据接入与时间同步
DataStream<RawSensorData> sensorStream = KafkaUtils.createFlinkKafkaConsumer(
"garbage_furnace_sensors",
new SimpleStringSchema(),
properties
).setStartFromEarliest();
// 2. 数据清洗与聚合
DataStream<ProcessedData> cleanedStream = sensorStream
.filter(data -> data.temp > -100 && data.temp < 200) // 剔除异常值
.keyBy(data -> data.device_id)
.timeWindow(Time.seconds(5))
.reduce((a, b) -> new ProcessedData(
a.device_id,
(a.temp + b.temp) / 2,
(a.co + b.co) / 2,
a.status
));
// 3. 异常检测(规则引擎+机器学习)
DataStream<Alert> alertStream = cleanedStream
.map(new RuleEngine()) // 规则引擎:温度>100℃或设备状态异常
.filter(data -> data.isRuleAlert) // 过滤规则告警
.union(cleanedStream
.map(new AnomalyDetector()) // 机器学习模型:Isolation Forest检测异常模式
.filter(data -> data.isMLAlert)) // 过滤机器学习告警
// 4. 模型在线更新(增量训练)
alertStream
.process(new ModelUpdater() {
@Override
public void processElement(Alert alert, Context ctx) throws Exception {
if (alert.isMLAlert) {
// 收集异常样本,更新Isolation Forest模型
updateModel(alert.sample);
}
}
});
// 5. 告警发送
alertStream
.process(new AlertSender() {
@Override
public void processElement(Alert alert, Context ctx) throws Exception {
sendAlert(alert); // 通过短信/邮件推送告警
}
});
5) 【面试口播版答案】
面试官您好,我设计的系统采用分层微服务架构,核心是实时流处理。数据采集层通过边缘设备接入多源传感器数据,统一传输到消息队列(如Kafka),处理层用Flink做实时清洗、聚合和异常检测,结合规则引擎(温度超过阈值)和机器学习模型(如Isolation Forest检测烟气异常),存储层用InfluxDB存实时数据,MySQL存规则。高可用性方面,各服务用K8s集群部署,数据存储做主从复制。安全上,数据传输用TLS加密,访问控制用RBAC。系统满足≤2秒的告警延迟和≥1M/s的数据吞吐量,确保7×24小时稳定运行并实时告警。
6) 【追问清单】
7) 【常见坑/雷区】