司令塔不只会"等你来问",还会自己找上门(主动式:时间到了或事情发生了);有些活还特别重,一台机器扛不住(高性能形态:AI 与大数据)。而站在它对面被服务的,除了你的电脑,还有一大群没有屏幕的机器。
- 主动式运用形态(在服务器端执行主动式处理的形态)
- 人工智能与大数据(执行高性能处理的形态)
- 客户端 PC 与设备(连接服务器的机器)
1. 为什么需要主动式
被动式有个前提:客户端知道该什么时候问。但现实里大量事情,客户端根本不知道该在什么时候问——
- 邮件什么时候到?你不知道,服务器知道;
- 监控出现异常,要不要等人来查才知道?
- 系统该备份了,谁提醒?
所以服务器还能主动发起处理。这就是第二种运用形态。
2. 主动式的三类典型动作
| 类型 | 触发的东西 | 例子 |
|---|---|---|
| 推送通知 | 事件发生 | 新邮件、新消息、App 弹窗、软件更新提示 |
| 定时任务 | 时间到了 | 半夜自动备份、每天早上 8 点生成报表 |
| 告警 | 越过阈值 | CPU 超过 90% 立刻喊人、磁盘快满了发短信 |
生活比喻:物业主动贴通知说"周三停水"、天气 App 提前推给你"明天有暴雨"——不等你问,因为它知道你不知道。
一句话记住:主动式 = 事件 / 时间驱动。触发它的不是客户端,而是时间到了或事情发生了。
主动处理必须有明确的业务规则与授权:推送要有订阅关系(用户同意接收)、告警要有阈值定义、定时任务要有计划配置。没有规则的"主动"不是服务,是骚扰。
3. 两种形态在现实里是混着用的
别把它们当成二选一。你手机上的每个 App 基本都在混用:
- 你下拉刷新——被动式(你发请求,服务器应答);
- 新消息自己弹出来——主动式(服务器(或推送服务)先发起的)。
代价要看清:主动式比被动式"贵"。被动式的服务器不用记住谁是谁;主动式要推送,服务器就得知道谁现在在线、推到哪个地址去——这是推送服务、长连接(WebSocket)这类技术存在的原因。第三章讲虚拟化、后面讲负载均衡时会再遇到这层复杂度。
4. 第三种:人工智能与大数据(高性能形态)
前面两种回答的是同一个问题:"谁先开口"。
第三种回答的是另一个问题:"算得多重"。
- AI 训练:拿几百万张图反复算,几天几夜不停;
- AI 推理:你问一句,它要在毫秒内算完几十亿次运算;
- 大数据分析:把上亿条记录翻一遍,找出规律。
这些活,一台机器扛不住,所以要一群机器一起算(集群、GPU 阵列)——这正是它被单独拿出来当一种形态讲的原因:它的规模量级和前面两种不在一个世界。
是"更重",不是"更快"——是规模、并行、算力的问题,不是把同一件事做得更快的优化问题。 而且 AI 服务对外多半还是被动式(你提问、它回答)。形态讲的是"处理的规模和方式",跟"谁先开口"是两个维度,可以叠加。
| 形态 | 回答的问题 | 触发/特征 |
|---|---|---|
| 被动式 | 谁先开口 | 客户端请求 |
| 主动式 | 谁先开口 | 时间 / 事件 |
| 高性能 | 算得多重 | 集群、GPU、长时运行 |
5. 客户端 PC 与设备:连接服务器的机器
客户端 = 所有连到服务器上、使用它提供的服务的机器。
教材把它们分成两类:
| 类型 | 例子 | 特点 |
|---|---|---|
| 有人操作的 | PC、笔记本、手机、平板 | 人要动手指才有请求 |
| 没人操作的 | 摄像头、传感器、打印机、扫码枪 | 自己定时上报,人不用管 |
两类都算客户端,这一点新手最容易漏:没有屏幕的机器也是客户端,而且在物联网、监控、工业场景里,它们的数量远超电脑。
网络 1.5 讲过 C/S 与 P2P 两派——C/S 就是"一个轴心 + 一圈客户端",本篇讲的正是那个轴心的另一头。 这也解释了一件事:为什么说服务器是"中枢"——客户端的数量与种类可以无限扩张,轴心只有一个。客户端的形态越杂(电脑、手机、摄像头、扫码枪),对服务器"同时应付各种脾气"的要求就越高。
6. 动手时间(Demo02):在你这台电脑上看"主动式"和"算力底座"
主动式不用装软件,Windows 自己就在大量使用它。
# 1. 主动式 · 时间驱动:本机排了哪些"到点自己跑"的任务
Get-ScheduledTask | Where-Object { $_.State -eq 'Ready' } |
Select-Object -First 6 TaskName, TaskPath
# 2. 主动式 · 事件驱动:系统日志里"发生了才记一笔"的条目
Get-WinEvent -LogName System -MaxEvents 5 |
Select-Object TimeCreated, LevelDisplayName, ProviderName
# 3. 后台常驻的"小服务器":无人值守、开机就自己跑
Get-Service | Where-Object { $_.Status -eq 'Running' } |
Select-Object -First 10 Name, DisplayName
# 4. 高性能形态的算力底座:几核、有没有独显
Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors
Get-CimInstance Win32_VideoController | Select-Object Name
观察点:
- 第 1 条会列出一堆计划任务(Windows 更新检查、磁盘清理、各种后台维护)——没有人在点它,它到点自己就跑,这就是主动式。
- 第 2 条看到的是事件日志:不是每隔一秒记一次,而是"出事了才记"(服务启动失败、硬盘告警)。这正是"事件驱动"的字面意思。
- 第 3 条会看到几十个 Running 的服务——它们全都无人值守,开机就自己起来。哪个端口在 LISTENING(Demo01 看过),背后就是这些服务里的某一个。
- 第 4 条是"高性能"的现实起点:你的 CPU 有几核、有没有独立显卡。AI 训练之所以要 GPU 集群,就是把这行数字乘以成百上千倍。
那一列是任务的分类路径(如 \Microsoft\Windows\UpdateOrchestrator)。随便挑一个到任务计划程序(taskschd.msc)里搜一下,能看到它的触发器——"每天几点"或"发生某事时"。触发器就是把主动式讲清楚的那个零件。
7. 30 秒实验
- 实验 1(被动 vs 主动):手机下拉通知栏——那些"你没问就跳出来"的条目是主动式;再点开一个 App 手动下拉刷新,那一下是被动式。同一个 App,两种形态并存。
- 实验 2(找一台无屏客户端):环顾四周,找出至少三台"没有屏幕却在联网"的设备(路由器、智能音箱、监控摄像头、打印机、门禁)。它们都在向某台服务器上报——它们都是客户端。
- 实验 3(算得多重):打开任务管理器,跑一次大文件压缩或视频导出,看 CPU 曲线冲顶;再想想 AI 训练要连续跑几天的负载——同一个"100%",持续时间差了三个数量级。
8. 常见误区
- 以为主动式就是服务器想推什么推什么——必须要有业务规则与授权(订阅、阈值、定时计划),否则不是服务是骚扰。
- 把"高性能"理解成"更快"——是更重:规模、并行、算力,而不是把同一件事做快一点。
- 以为 AI 服务是"第四种形态"——它对外通常仍是被动式(你提问、它回答),只是背后的算力是高性能形态。两个维度,别混。
- 以为客户端就是电脑和手机——没有屏幕的设备(摄像头、传感器、打印机、扫码枪)同样是客户端,而且数量更多。
- 以为主动式不需要客户端配合——推送要客户端注册并保持可达(在线、有地址、有订阅),否则服务器不知道往哪儿送。
9. 折叠自测题
分界线是谁先发起。被动式=请求驱动(打开网页、搜索、下拉刷新);主动式=服务器先发起(邮件到达提醒、天气推送、系统更新提示)。
推送通知(事件驱动)、定时任务(时间驱动)、告警(越阈值)。共同点:客户端没开口。
回答的是另一个维度的问题:前两种说"谁先开口",这一形态说"算得多重"。它通常表现为大集群、长时间运行,对外仍然可能是一个被动式服务。
因为客户端的定义是连到服务器上、使用它提供的服务,与有没有屏幕、有没有人操作无关。摄像头、传感器、扫码枪都在向服务器上报或取数据。
10. 下一步学什么
- ☑ 1.7-1.9 负载类型与模型化(爆发系与持久系、系统结构) —— 负载类型与模型化(爆发系与持久系、系统结构) 点此继续:客户端的两种脾气(爆发系 / 持久系)、把系统画成图的"模型化",以及本章的收束。
相关笔记
- 系统与司令塔(系统与服务器、使用形态、被动式运用形态) —— 三件套与被动式的定义篇(读本篇前先看它)
- 与PC的三重差异(可靠性、性能、操作系统) —— 本篇说的"高性能形态",第二章讲它靠什么硬件堆出来(GPU 服务器)
- 网络 1.5 是谁在负责收发数据(应用程序、P2P应用) —— C/S 与 P2P:轴心与一圈客户端的关系
- 网络 6.11 高度压缩路由信息的终极方法(默认路由) —— 无屏客户端要上网,同样得靠网关把包送出去
- 🔵 计算机基础 · 自学笔记 —— CPU 核数、GPU 与算力的底层常识