这个项目能做什么

本仓库演示了如何在 Google Cloud Platform 上构建低延迟的网页流量分析解决方案。整体架构包括四个主要部分: 1. **事件采集** – 通过一个简单的 Python 事件生成器向 Pub/Sub 主题发送点击流消息。Pub/Sub 作为持久且全局可用的消息总线,将生产者与消费者解耦。 2. **流式处理** – 使用 Apache Beam 在 Dataflow(runner=DataflowRunner)上以流模式运行管道。管道读取 Pub/Sub 事件,提取关键字段,并在 Cloud Memorystore(Redis)中更新指标计数器。Redis 之所以被选为内存存储,是因为其原生集合和 HyperLogLog 命令(`SCARD`、`SINTERSTORE`、`PFADD`、`PFCOUNT`)能够高效完成唯一访客计数和基于集合的分析。 3. **指标存储** – Cloud Memorystore(Redis)保存实时指标。借助 Redis 内置的数据结构,方案无需自定义聚合代码即可实现亚秒级查询延迟。 4. **可视化** – 位于 `dashboard/` 目录的 Spring Boot 应用通过 Jedis 客户端连接 Redis,读取聚合值并使用 Google Charts 渲染。UI 支持自动刷新,营销人员或运维人员可以实时监控活跃用户、实验参与度、转化率以及用户重叠等关键指标。 仓库提供了以下脚本和操作指南: - 创建所需的 GCP 服务(Pub/Sub、Dataflow、Memorystore、Cloud Storage、VPC 网络)。 - 使用 Maven 部署 Dataflow 管道。 - 在 Python 虚拟环境中运行示例事件生成器。 - 在代理 VM 上启动 Spring Boot 仪表盘,以实现 VPC 限制下对 Redis 的访问。 - 通过 Cloud Shell Web 预览查看实时仪表盘。 所有组件均为完全托管服务,系统能够自动弹性伸缩,运维负担极低。该项目可作为在 GCP 上进行实时网页分析、A/B 测试监控或任何基于点击流的 KPI 报告的起始模板。