第十六周 #50

Merged
hnu202326010130 merged 1 commits from zoujiaxuan_branch into develop 5 days ago

@ -0,0 +1,104 @@
# 邹佳轩第 12 周学习总结
第 12 周2025-12-08 至 2025-12-14
## 本周完成情况概览
### 已完成内容
1. **PostgreSQL 环境搭建与网络配置12/8**
- 在主机 A/B 完成 PostgreSQL 安装(版本统一为 15
- 修改 `postgresql.conf` 配置 `listen_addresses='*'` 与最大连接数
- 配置 `pg_hba.conf` 开放网段访问权限,并配置防火墙放行 5432 端口
- 涉及文件:`postgresql.conf`、`pg_hba.conf`
2. **跨主机远程访问与权限控制12/9**
- 创建远程访问专用角色 `remote_user` 并设置加密密码
- 实施最小权限策略,仅授予指定模式/表的只读或读写权限
- 验证从主机 B 通过 `psql` 客户端成功连接主机 A
- 交付物:用户权限配置脚本、连接测试截图
3. **FDW外部数据包装器数据共享12/10**
- 在主机 B 启用 `postgres_fdw` 扩展
- 创建外部服务器Server与用户映射User Mapping
- 成功导入主机 A 的 `public` 模式表至主机 B 的 `foreign_public`
- 验证:在主机 B 可直接查询主机 A 的数据,性能符合预期
- 交付物FDW 配置 SQL 脚本
4. **逻辑复制增量同步12/11**
- 在主机 A发布端创建 Publication`pub_demo`
- 在主机 B订阅端创建 Subscription`sub_demo`
- 验证数据同步:在主机 A 插入数据,主机 B 毫秒级自动同步
- 交付物:逻辑复制配置文档与验证记录
5. **文档与风险控制方案12/12**
- 整理完整的《PostgreSQL 跨主机协作配置指南》
- 制定安全策略IP 白名单、密码轮换)与回滚预案(撤销 FDW/订阅)
- 涉及文档:配置变更清单、操作手册、回滚脚本
### 部分完成/待完善内容
1. 逻辑复制在大批量数据写入时的延迟监控与冲突处理机制尚需优化
2. FDW 跨大表查询的性能调优(如算子下推)还需进一步测试
3. 目前仅实现了基础的主从同步高可用故障切换Failover暂未涉及
### 各领域掌握程度评估
#### 数据库运维与管理
- 掌握状态:熟悉 PostgreSQL 配置文件与网络访问控制
- 具体表现:独立完成跨主机网络打通与权限配置
- 能力描述:具备构建安全、可访问的数据库服务环境的能力
#### 分布式数据协作技术
- 掌握状态:掌握 FDW 与逻辑复制的核心原理与实践
- 具体表现:实现跨库查询与增量数据同步
- 能力描述:能够根据业务需求选择合适的数据共享方案(联邦查询 vs 复制)
#### 系统安全与风险控制
- 掌握状态:具备基础的安全意识与预案制定能力
- 具体表现:实施最小权限原则,制定回滚与应急方案
- 能力描述:能在保障功能的前提下,有效控制系统风险
## 问题分析与反思
### 主要收益
1. 打通了跨主机数据库协作流程,为后续微服务拆分或读写分离奠定基础
2. 深入理解了 PostgreSQL 的扩展机制FDW与复制架构
3. 提升了多环境下的网络排查与配置能力
### 存在不足与改进方向
1. 对网络波动导致的复制中断缺乏自动恢复测试
2. FDW 在复杂 Join 场景下的性能表现未做深入评估
3. 监控指标(如复制延迟、连接数)尚未集成到统一监控平台
## 下周重点与计划
1. 对逻辑复制进行压力测试,模拟网络中断并验证自动恢复能力
2. 探索 PostgreSQL 的高可用方案(如 Patroni 或 Repmgr
3. 将数据库监控指标Exporter接入 Prometheus + Grafana
4. 配合后端团队,将应用层连接切换至新搭建的数据库环境进行联调
## 经验总结与启示
1. 网络配置(防火墙/监听地址)是跨主机协作的第一道坎,需细致排查
2. 权限控制应从一开始就严格遵循最小化原则,避免后期收缩困难
3. 逻辑复制相比物理复制更灵活,适合特定表的数据分发场景
## 总体评价与展望
本周按计划完成了 PostgreSQL 的跨主机环境搭建与数据协作配置,掌握了 FDW 与逻辑复制两项关键技术,并输出了完整的配置文档与安全方案。为团队后续的分布式开发与测试环境提供了有力支撑。下周将重点关注稳定性与监控,确保数据库服务的高可用。
---
**总结人**:邹佳轩
**总结时间**:第 12 周末

@ -0,0 +1,43 @@
# 邹佳轩第 13 周学习计划
第 13 周2025-12-15 至 2025-12-21
## 本周学习目标
1. **服务容器化封装**:掌握 Docker 基础,将后端、数据库等核心组件封装为容器镜像。
2. **编排环境搭建**:使用 Docker Compose 实现多服务的一键启动与网络互通。
3. **开发环境标准化**:解决团队成员本地环境不一致的问题,输出标准化配置指南。
## 详细学习任务
### 1. Docker 基础与镜像构建
- [ ] 学习 Docker 核心概念Image, Container, Registry
- [ ] 编写 `backend` 服务的 `Dockerfile`,优化构建层级以减少镜像体积。
- [ ] 编写 `database` (PostgreSQL) 与 `cache` (Redis) 的自定义镜像配置。
### 2. Docker Compose 服务编排
- [ ] 编写 `docker-compose.yml` 文件,定义服务依赖(`depends_on`)。
- [ ] 配置容器网络Bridge Network确保后端能通过服务名访问数据库。
- [ ] 配置数据卷Volumes实现数据库与日志文件的持久化存储。
- [ ] 添加健康检查Healthcheck确保依赖服务完全启动后再拉起应用。
### 3. 环境验证与文档输出
- [ ] 在 Windows 与 Linux 环境下分别测试一键启动脚本。
- [ ] 验证容器内 DNS 解析与端口映射是否正常。
- [ ] 编写《本地容器化开发环境搭建指南》,指导团队成员迁移环境。
## 预估产出物
1. 后端与数据库服务的 `Dockerfile`
2. 完整的 `docker-compose.yml` 编排文件。
3. 环境启动脚本与搭建文档。
## 重点难点分析
- **难点**:容器网络互通与文件权限映射(尤其是在 Windows 主机上)。
- **对策**:深入阅读 Docker 网络文档,使用 WSL2 环境进行调试。
---
**计划人**:邹佳轩
**制定时间**:第 13 周初

@ -0,0 +1,70 @@
# 邹佳轩第 13 周学习总结
第 13 周2025-12-15 至 2025-12-21
## 本周完成情况概览
### 已完成内容
1. **服务容器化封装12/15**
- 编写后端服务、数据库与缓存组件的 `Dockerfile`
- 优化镜像构建分层,利用多阶段构建减少镜像体积(从 800MB 优化至 200MB+
- 涉及文件:`backend/Dockerfile`、`database/Dockerfile`
2. **Docker Compose 编排环境12/16**
- 编写 `docker-compose.yml`,定义服务依赖关系与网络拓扑
- 实现 `backend`、`postgres`、`redis` 与 `flume` 的一键启停
- 配置服务健康检查Healthcheck确保依赖服务就绪后再启动应用
- 交付物:完整的 `docker-compose.yml` 与环境启动脚本
3. **容器数据卷与网络管理12/17**
- 配置持久化数据卷Volume保障数据库与日志数据不随容器销毁而丢失
- 划分内部网络(`backend-net`)与外部网络,隔离数据层与访问层
- 验证容器间 DNS 解析与服务互通性
4. **开发环境标准化12/18**
- 统一团队开发环境配置,通过 `.env` 文件管理环境变量
- 解决 Windows/Linux 跨平台文件路径与权限差异问题
- 输出《本地容器化开发环境搭建指南》
### 部分完成/待完善内容
1. K8s 部署清单Manifests仅完成初步草案尚未在 Minikube/Kind 环境完整验证
2. 容器日志尚未统一收集到 Flume目前仍依赖 `docker logs` 查看
### 各领域掌握程度评估
#### 容器技术
- 掌握状态:熟练掌握 Docker 构建与 Compose 编排
- 具体表现:独立完成多服务环境的封装与网络配置
- 能力描述:具备将传统应用迁移至容器化架构的能力
#### 开发运维DevOps
- 掌握状态:初步建立“配置即代码”的意识
- 具体表现:通过 Compose 文件固化运行环境,消除环境差异
- 能力描述:能够为团队提供标准化的开发基础设施
## 问题分析与反思
### 主要收益
1. 彻底解决了“在我机器上能跑”的环境一致性问题
2. 新成员接入成本大幅降低,一条命令即可拉起完整后端环境
3. 通过容器化隔离,避免了本地依赖冲突
### 存在不足与改进方向
1. 镜像构建速度较慢,需引入构建缓存或国内镜像源优化
2. 容器资源限制CPU/Memory未做精细化配置可能导致 OOM
3. 缺乏容器内部的监控手段
## 下周重点与计划
1. 引入 Prometheus + Grafana搭建容器与数据库监控体系
2. 研究 PostgreSQL 的高可用架构(如 Patroni并在容器环境中模拟故障切换
3. 优化镜像构建流水线,尝试接入 CI/CD 流程

@ -0,0 +1,42 @@
# 邹佳轩第 14 周学习计划
第 14 周2025-12-22 至 2025-12-28
## 本周学习目标
1. **全栈监控体系搭建**:引入 Prometheus + Grafana实现对容器、主机及中间件的全面监控。
2. **可视化仪表盘配置**:定制数据库性能与系统资源大屏,实现核心指标的可视化。
3. **数据库高可用探索**:研究并验证 PostgreSQL 的主从复制与故障自动切换方案。
## 详细学习任务
### 1. 监控基础设施部署
- [ ] 部署 Prometheus Server 与 Grafana 容器,并挂载持久化存储。
- [ ] 配置 `node_exporter` 采集主机硬件指标CPU/Mem/Disk
- [ ] 配置 `cadvisor` 采集 Docker 容器的实时资源使用情况。
### 2. 应用与中间件监控
- [ ] 接入 `postgres_exporter`,采集数据库连接数、缓存命中率、死锁等关键指标。
- [ ] 接入 `redis_exporter`,监控缓存服务的吞吐量与延迟。
- [ ] 在 Grafana 中导入并优化社区标准的 Dashboard 模板。
### 3. 高可用架构演练
- [ ] 调研 PostgreSQL 高可用方案Patroni / Repmgr
- [ ] 搭建一主一从Primary-Standby的数据库集群。
- [ ] 模拟主节点宕机场景验证从节点的自动提升Failover流程。
## 预估产出物
1. 监控服务全套 Compose 配置(含 Exporters
2. Grafana 监控大屏 JSON 导出文件。
3. 《PostgreSQL 高可用方案选型与测试报告》。
## 重点难点分析
- **难点**:在容器网络环境下实现 VIP虚拟 IP漂移或客户端自动重连。
- **对策**重点测试驱动层JDBC/Psycopg2的连接参数配置确保应用能感知主从切换。
---
**计划人**:邹佳轩
**制定时间**:第 14 周初

@ -0,0 +1,72 @@
# 邹佳轩第 14 周学习总结
第 14 周2025-12-22 至 2025-12-28
## 本周完成情况概览
### 已完成内容
1. **监控体系搭建12/22**
- 部署 Prometheus 与 Grafana 容器,配置持久化存储
- 集成 `node_exporter` 采集主机指标,`cadvisor` 采集容器资源指标
- 接入 `postgres_exporter``redis_exporter`,实现中间件深度监控
- 交付物:监控服务 Compose 配置、Grafana 数据源配置
2. **可视化仪表盘配置12/23**
- 导入并定制 PostgreSQL 性能监控大屏QPS、连接数、缓存命中率、死锁
- 搭建系统资源概览面板,实时展示 CPU、内存、磁盘 I/O 水位
- 配置基础告警规则(如 CPU > 80%),验证告警触发与恢复
- 涉及文件Grafana Dashboards JSON 导出文件
3. **数据库高可用探索12/24**
- 调研 PostgreSQL 高可用方案Patroni vs Repmgr vs Pgpool-II
- 在测试环境搭建基于 Repmgr 的主从复制集群
- 模拟主节点宕机验证从节点自动提升Failover流程
- 输出《PostgreSQL 高可用方案选型与测试报告》
4. **日志与监控联动12/25**
- 配合 Flume 团队,将容器标准输出日志重定向至日志收集端
- 尝试在 Grafana 中集成 Loki轻量级日志系统实现指标与日志的同屏关联
### 部分完成/待完善内容
1. 高可用方案的 VIP虚拟 IP漂移在容器网络中实现较复杂目前仍依赖客户端重连
2. 告警通知渠道目前仅支持邮件,尚未接入钉钉/企业微信 Webhook
3. Flume 自身的监控指标尚未完全接入 Prometheus
### 各领域掌握程度评估
#### 可观测性Observability
- 掌握状态:掌握监控数据的采集、存储与可视化链路
- 具体表现:独立搭建全栈监控平台,覆盖基础设施与中间件
- 能力描述:具备构建系统级“仪表盘”的能力,能通过指标快速发现隐患
#### 数据库高可用
- 掌握状态:理解主从复制与故障转移的核心原理
- 具体表现:成功搭建并验证主从切换流程
- 能力描述:能够设计具备一定容灾能力的数据库架构
## 问题分析与反思
### 主要收益
1. 系统运行状态透明化,不再“盲人摸象”
2. 通过压力测试配合监控观察,发现了数据库连接池配置过小的瓶颈
3. 高可用演练暴露了应用层重连机制的缺陷,倒逼代码优化
### 存在不足与改进方向
1. 监控数据保留策略未配置,长期运行可能占用过多磁盘
2. 告警规则存在误报Flapping需优化阈值与持续时间窗口
3. 高可用架构增加了运维复杂度,需编写自动化维护脚本
## 下周重点与计划
1. 深入研究 AI Agent 技术栈,部署本地大语言模型(如 Llama/Qwen
2. 探索 LangChain 框架尝试构建基于文档的问答助手RAG
3. 配合后端开发,设计 AI 诊断接口,实现“日志 -> 诊断建议”的初步闭环

@ -0,0 +1,42 @@
# 邹佳轩第 15 周学习计划
第 15 周2025-12-29 至 2026-01-04
## 本周学习目标
1. **本地 LLM 环境部署**:搭建私有化大模型推理环境,摆脱对公网 API 的依赖。
2. **AI 诊断接口开发**:基于 FastAPI 开发故障诊断服务,实现 Prompt 工程化。
3. **RAG 技术探索**:引入检索增强生成技术,利用项目文档提升 AI 诊断的准确性。
## 详细学习任务
### 1. 模型选型与部署
- [ ] 调研开源大模型Qwen2.5, Llama3选择适合本地显存<16GB
- [ ] 使用 Ollama 或 vLLM 部署推理服务,并开启兼容 OpenAI 的 API 接口。
- [ ] 测试不同量化精度4bit vs 8bit下的推理速度与生成质量。
### 2. AI 业务逻辑开发
- [ ] 设计针对 Hadoop 故障诊断的 System Prompt规范输出格式。
- [ ] 开发后端接口,实现“接收日志 -> 组装 Prompt -> 调用 LLM -> 流式返回”的完整链路。
- [ ] 优化前端交互,支持 SSEServer-Sent Events打字机效果。
### 3. 知识库增强 (RAG)
- [ ] 收集 Hadoop 官方文档与历史故障案例,进行文本清洗与分块。
- [ ] 使用 Embedding 模型将文本向量化,并存入 ChromaDB 向量数据库。
- [ ] 实现“检索 + 生成”流程,将相关知识作为上下文注入 Prompt。
## 预估产出物
1. 本地 LLM 启动脚本与性能测试报告。
2. 集成了 AI 诊断功能的后端代码模块。
3. 典型故障诊断案例演示视频。
## 重点难点分析
- **难点**Prompt 的调优Prompt Engineering如何让模型准确输出结构化建议而非闲聊。
- **对策**:建立 Prompt 版本库,通过大量真实日志样本进行迭代测试。
---
**计划人**:邹佳轩
**制定时间**:第 15 周初

@ -0,0 +1,80 @@
# 邹佳轩第 15 周学习总结
第 15 周2025-12-29 至 2026-01-04
## 本周完成情况概览
### 已完成内容
1. **本地 LLM 环境部署12/29**
- 使用 Ollama 部署 Qwen2.5-Coder 与 Llama3 模型
- 搭建 vLLM 推理服务,提供兼容 OpenAI 格式的 API 接口
- 对比不同量化版本4bit/8bit在本地显存下的推理速度与效果
- 交付物:本地 LLM 启动脚本与性能测试报告
2. **AI Agent 接口开发12/30**
- 基于 FastAPI 封装 AI 诊断服务,对接 vLLM 接口
- 设计 Prompt 模板,包含“角色设定+上下文(日志)+任务指令+输出格式”
- 实现流式输出SSE提升前端用户体验
- 涉及文件:`backend/app/routers/ai.py`、`backend/app/services/llm.py`
3. **故障诊断功能初步跑通01/01**
- 联调“日志采集 -> 存入数据库 -> 读取日志 -> 发送给 AI -> 返回诊断”全链路
- 针对 Hadoop 常见报错(如 DataNode 丢失、SafeMode优化 Prompt
- 验证 AI 给出的修复建议准确性,并进行人工微调
- 交付物:故障诊断演示视频、典型案例 Prompt 库
4. **RAG检索增强生成探索01/02**
- 尝试将 Hadoop 官方文档与过往故障知识库向量化(使用 ChromaDB
- 在诊断流程中引入知识库检索,减少模型幻觉
- 验证发现 RAG 能显著提升对特定版本配置参数建议的准确度
### 部分完成/待完善内容
1. Agent 目前仅能给出建议,尚未实现“自动执行修复命令”的功能(需 MCP 支持)
2. 多轮对话上下文管理尚简陋,长对话可能丢失早期信息
3. 推理延迟在并发请求下较高,需设计请求队列或限流机制
### 各领域掌握程度评估
#### 大模型应用开发LLM Ops
- 掌握状态:熟悉 Prompt 工程与本地模型部署接口
- 具体表现:成功将通用大模型转化为特定领域的故障诊断助手
- 能力描述:具备开发基于 LLM 的垂直应用的能力
#### AI 后端集成
- 掌握状态:掌握 SSE 流式传输与异步推理调用
- 具体表现:实现了低延迟的 AI 交互接口
- 能力描述:能够解决 AI 模型高延迟与 Web 实时交互之间的矛盾
## 问题分析与反思
### 主要收益
1. 项目核心亮点“AI 故障诊断”终于落地,形成了差异化竞争力
2. 深刻体会了 Prompt Quality 对输出结果的决定性影响
3. 掌握了本地部署大模型的低成本方案,摆脱了对昂贵商业 API 的依赖
### 存在不足与改进方向
1. 模型对长日志(超过 Context Window的处理仍需截断可能丢失关键信息
2. 缺乏对 AI 输出结果的自动评估机制Eval依赖人工主观判断
3. 知识库构建尚未自动化,文档更新滞后
## 下周重点与计划
1. 进行全系统集成测试,模拟从 Hadoop 故障发生到 AI 给出诊断的完整闭环
2. 配合前端优化 AI 对话界面,支持 Markdown 渲染与代码高亮
3. 整理项目文档,准备最终验收答辩材料
4. 编写系统部署手册,确保在全新环境下可一键复现
## 总体评价与展望
本周实现了 AI 技术的赋能,将项目的技术含量提升了一个台阶。虽然目前的 Agent 还比较初级,但已经展现出了强大的辅助运维潜力。下周将进入最后的冲刺阶段,聚焦于系统的整体打磨与交付。
---
**总结人**:邹佳轩
**总结时间**:第 15 周末

@ -0,0 +1,42 @@
# 邹佳轩第 16 周学习计划
第 16 周2026-01-05 至 2026-01-11
## 本周学习目标
1. **全系统集成测试**:打通 Hadoop、Flume、Backend、AI 与 Frontend 的全链路,验证系统整体功能。
2. **性能优化与 Bug 修复**:解决高并发下的性能瓶颈,修复测试中发现的关键缺陷。
3. **项目交付与验收**:整理最终交付文档,录制演示视频,准备答辩材料。
## 详细学习任务
### 1. 端到端集成测试 (E2E)
- [ ] 设计完整的测试用例:从 Hadoop 节点注入故障开始,到前端显示 AI 诊断结果结束。
- [ ] 组织全员进行压力测试,观察数据库连接池与 Docker 容器资源的稳定性。
- [ ] 验证系统在异常情况(如网络中断、服务宕机)下的恢复能力。
### 2. 系统优化
- [ ] 分析数据库慢查询日志,对高频查询字段添加索引。
- [ ] 调整 Docker 容器的资源限制CPU/Memory防止 OOM。
- [ ] 优化前端静态资源加载策略Gzip 压缩、浏览器缓存)。
### 3. 文档整理与交付
- [ ] 编写《系统部署与运维手册》,确保第三方可在新环境一键部署。
- [ ] 整理 API 文档、数据库设计文档与测试报告。
- [ ] 制作项目演示 PPT 与功能演示视频,准备最终答辩。
## 预估产出物
1. 集成测试报告与 Bug 修复清单。
2. 完整的项目交付文档包部署手册、API 文档等)。
3. 项目最终源码包Release Version
## 重点难点分析
- **难点**多组件联动下的故障定位Distributed Tracing
- **对策**:利用之前搭建的 Grafana 监控大屏,结合日志时间戳进行全链路排查。
---
**计划人**:邹佳轩
**制定时间**:第 16 周初

@ -0,0 +1,61 @@
# 邹佳轩第 16 周学习总结
第 16 周2026-01-05 至 2026-01-11
## 本周完成情况概览
### 已完成内容
1. **全系统集成测试01/05**
- 组织全员进行端到端E2E测试Hadoop 故障注入 -> Flume 采集 -> Backend 存储 -> AI 诊断 -> 前端展示
- 修复了 Docker 网络互通、数据库连接超时、AI 响应格式解析错误等 5 个关键 Bug
- 验证了系统在 50+ 并发用户下的稳定性,数据库与后端服务未见异常
- 交付物集成测试报告、Bug 修复清单
2. **系统性能优化01/06**
- 优化 PostgreSQL 索引,将日志查询耗时从 500ms 降低至 50ms
- 调整 Docker 容器资源配额,防止 Java 进程 OOM
- 为前端静态资源配置 Nginx 缓存与 Gzip 压缩,首屏加载速度提升 40%
### 部分完成/待完善内容
1. 部分边缘测试用例(如网络极端抖动)覆盖不足
2. 代码注释率虽然达标,但部分复杂逻辑的文档说明仍显单薄
### 各领域掌握程度评估
#### 全栈系统架构
- 掌握状态:具备从底层设施到上层应用的全链路视野
- 具体表现能够定位跨组件Frontend-Backend-DB-AI-Infra的复杂问题
- 能力描述:拥有独立设计并交付中型分布式系统的能力
#### 项目交付与质量管理
- 掌握状态:熟悉软件交付生命周期的最后“一公里”
- 具体表现:产出高质量的文档与经过验证的软件包
- 能力描述:能够按照工程标准完成软件交付
## 问题分析与反思
### 主要收益
1. 完成了从 0 到 1 的全过程技术栈覆盖面广BigData + Web + AI + Ops
2. 容器化与 AI 的结合实践极具前瞻性,积累了宝贵经验
3. 团队协作默契度在最后冲刺阶段达到顶峰
### 存在不足与改进方向
1. 前期需求分析不够细致,导致后期部分功能返工(如日志格式统一)
2. 测试自动化程度不高,回归测试依赖人工,效率较低
3. 对 Hadoop 底层原理的理解仍停留在运维层面,源码级掌握不足
## 下周重点与计划
1. **项目结项**:正式提交所有代码与文档
2. **成果展示**:进行课程/项目答辩
3. **后续维护**:如有需要,修复验收过程中发现的非阻断性 Bug
Loading…
Cancel
Save