你是不是也被米家云服务器的繁复架构搞得头疼?别急,今天我把它拆解成图解级别的细节,让你在一眼就能看懂!先给你预告一波:从核心模块到边缘节点,从 Docker 容器到 Kubernetes 编排,所有你想知道的技术位置都能在图里一图秒懂,像奶茶店直观过招。下面直接上图解内容,顺便加点实战感,简直把你变成小程序程序员!(别担心,没必要深刻做笔记,直接看着我敲机器回去也行)
(①)整体架构视角:米家云服务器以“多节点+微服务+容器”为核心,采用微服务骨架把业务拆成 “环境感知、设备管理、数据推送、用户使用权、远程控制” 等子系统。技术栈大致是:Java+SpringBoot、Python+FastAPI、Node.js+Express、Docker、Kubernetes、Redis、PostgreSQL、ClickHouse。你可以想成一个大披萨,以每一块为一项业务,酱料往里拌,工人往不同地方派送。
(②)入口层:前端请求先到 API 网关(NGINX+Kong),网关做速率限制、鉴权、日志收集。网关后面是“负载均衡器-灰度发布”服务,用 Nginx Plus 或者 Traefik 进行蓝/绿部署,确保推送业务与 user identity 再无干扰。
(③)核心业务层:微服务根据功能拆分,部署在 Kubernetes 集群上。每项微服务都置于 namespaces,采用 Helm charts 进行标准化部署,Helm 作为一张“部署单据”,让运维同学也能像点外卖一样直接交付。容器化的服务使用 Docker 镜像,镜像编写在 CI/CD Pipeline 中跑一遍单元测试后上传到 Harbor,镜像版本号与业务版本同步,保证版本安全。
(④)缓存层:Redis Cluster 用来做设备状态缓存,每个租户有独立的数据库,数据读写速度高到秒。对性能要求高的“云端推送”服务,可以加上 Redis Sentinel 做高可用,防止单点故障拖垮整个“天花板”。
(⑤)数据持久化:关系型 MySQL 用来存储用户资料与权限表,ClickHouse 用来做日志与事件聚合。ClickHouse 采用列存和实时快照技术,亿级日志数据走按需查询,支持每分钟推送 PQL 分析。Kafka 或 Pulsar 负责异步消息队列,分组消费让业务不卡顿。
(⑥)监控与告警:Prometheus + Grafana 监控集群 CPU、内存、磁盘、网络IO。节点或者服务有掉线快照时,Alertmanager 通过 Slack/邮件/短信实时推送。Grafana 通过自定义 Dashboard 让运维选手随时看服务器温度,还可以做热门服务时段热力图,折腾多少万条日志让你秒懂。
(⑦)边缘计算节点:米家家控像个大型家居城市,边缘节点使用 Docker Swarm 或 lightweight kubelet 运行数据逻辑,直接在路由器或网关附近处理音视频转码、短推送。这样在延迟敏感场景下可把 5 秒的握手时间扔到地铁站前。
(⑧)安全机制:自研 Cognito 认证框架,使用 OAuth2、JWT+Refresh Token 组合。所有服务间通信使用 mTLS,密钥采用密钥托管(KMS)动态颁发。配合 API 网关的授权策略避免恶意请求爬。所有数据往外流之前都经过 AES-256 加密,并写入 WAF Shield。缓冲层 Redis 的数据只用有清楚 OIDC 的对称密钥,保证任何攻客都别想拿到。
(⑨)可观测性:ELK Stack(Elasticsearch+Logstash+Kibana) 用于中央日志系统,所有微服务日志统一走 Filebeat