1774315861

This commit is contained in:
Docker7530
2026-03-24 09:31:04 +08:00
parent 7ab924d668
commit ab0cbad418
19 changed files with 412 additions and 132 deletions
-6
View File
@@ -5,12 +5,6 @@
"ctime": 1736742940138,
"path": "work/移动杭研/业务梳理/接口收纳.md"
},
{
"type": "file",
"ctime": 1768964533760,
"path": "work/移动杭研/开发记录/7.18.0/开发笔记.md",
"title": "7.18.0 开发笔记"
},
{
"type": "file",
"ctime": 1772680366639,
+3 -3
View File
@@ -1,11 +1,11 @@
[
"obsidian-paste-image-rename",
"update-relative-links",
"quickadd",
"calendar",
"recent-files-obsidian",
"oz-clear-unused-images",
"obsidian-excalidraw-plugin",
"templater-obsidian",
"obsidian-linter"
"obsidian-linter",
"obsidian-paste-image-rename",
"recent-files-obsidian"
]
+1 -1
View File
@@ -1,5 +1,5 @@
{
"folder": "calendar/diary",
"template": "attachment/templates/日记模板",
"template": "attachment/templates/日常记录-日记模板",
"autorun": false
}
+1 -1
View File
@@ -5,7 +5,7 @@
"name": "日常记录-闪念笔记",
"type": "Template",
"command": false,
"templatePath": "attachment/templates/时间戳笔记.md",
"templatePath": "attachment/templates/日常记录-闪念笔记.md",
"fileNameFormat": {
"enabled": true,
"format": "{{DATE:YYYYMMDDHHmmSS}}"
+34 -70
View File
@@ -1,28 +1,48 @@
{
"recentFiles": [
{
"basename": "如何成为一个 React 工程师呢?",
"path": "resource/前端/如何成为一个 React 工程师呢?.md"
"basename": "20260324090682",
"path": "000-Inbox/20260324090682.md"
},
{
"basename": "TG 备忘录",
"path": "personal/TG 备忘录.md"
"basename": "Docker 核心知识与实战笔记",
"path": "000-inbox/Docker 核心知识与实战笔记.md"
},
{
"basename": "20260324085410",
"path": "000-Inbox/20260324085410.md"
},
{
"basename": "20260324085466",
"path": "000-Inbox/20260324085466.md"
},
{
"basename": "20260324084778",
"path": "000-Inbox/20260324084778.md"
},
{
"basename": "开发笔记",
"path": "work/移动杭研/开发记录/7.18.0/开发笔记.md"
},
{
"basename": "tg-bot",
"path": "000-inbox/tg-bot.md"
},
{
"basename": "0323-邮件发送异常",
"path": "work/移动杭研/问题处理/2026-03/0323-邮件发送异常.md"
},
{
"basename": "如何成为一个 React 工程师呢?",
"path": "resource/前端/如何成为一个 React 工程师呢?.md"
},
{
"basename": "开发笔记",
"path": "work/移动杭研/开发记录/7.19.0/开发笔记.md"
},
{
"basename": "20260321211989",
"path": "000-Inbox/20260321211989.md"
},
{
"basename": "20260320234712",
"path": "000-Inbox/20260320234712.md"
},
{
"basename": "20260320124131",
"path": "000-Inbox/20260320124131.md"
"basename": "TG 备忘录",
"path": "personal/TG 备忘录.md"
},
{
"basename": "IBS 智能体具体落实技术方案",
@@ -112,10 +132,6 @@
"basename": "Anolis 系统 Redis 安装",
"path": "resource/组件/Anolis 系统 Redis 安装.md"
},
{
"basename": "tg-bot",
"path": "000-inbox/tg-bot.md"
},
{
"basename": "常用命令",
"path": "resource/常用命令.md"
@@ -139,58 +155,6 @@
{
"basename": "0316-配管任务限流问题",
"path": "work/移动杭研/问题处理/2026-03/0316-配管任务限流问题.md"
},
{
"basename": "0316-配管任务限流问题",
"path": "000-Inbox/0316-配管任务限流问题.md"
},
{
"basename": "1107-试用单删除问题",
"path": "work/移动杭研/问题处理/2025-11/1107-试用单删除问题.md"
},
{
"basename": "20260313151563",
"path": "000-Inbox/20260313151563.md"
},
{
"basename": "BUSI_REQUIREMENT_COSMIC",
"path": "resource/ai/prompts/cosmic 业务版本/BUSI_REQUIREMENT_COSMIC.md"
},
{
"basename": "BUSI_REQUIREMENT_FLOWCHART",
"path": "resource/ai/prompts/cosmic 业务版本/BUSI_REQUIREMENT_FLOWCHART.md"
},
{
"basename": "Prompt 高级彩虹屁",
"path": "resource/ai/prompts/Prompt 高级彩虹屁.md"
},
{
"basename": "Prompt 考勤数据规整助手 小杨",
"path": "resource/ai/prompts/Prompt 考勤数据规整助手 小杨.md"
},
{
"basename": "开发备注",
"path": "work/移动杭研/AI 项目/开发备注.md"
},
{
"basename": "Prompt 公司智能体",
"path": "resource/ai/prompts/临时/Prompt 公司智能体.md"
},
{
"basename": "Prompt 需求-考勤转换-小杨",
"path": "resource/ai/prompts/临时/Prompt 需求-考勤转换-小杨.md"
},
{
"basename": "Prompt 专家模板",
"path": "resource/ai/prompts/Prompt 专家模板.md"
},
{
"basename": "Prompt ChatBI 查询规划器",
"path": "resource/ai/prompts/Prompt ChatBI 查询规划器.md"
},
{
"basename": "Prompt Linus",
"path": "resource/ai/prompts/Prompt Linus.md"
}
],
"omittedPaths": [
+47 -50
View File
@@ -4,11 +4,11 @@
"type": "split",
"children": [
{
"id": "67738bd5acdbd7ce",
"id": "efd0ccfc8a82680d",
"type": "tabs",
"children": [
{
"id": "00649b8cd88fe2b8",
"id": "f15a0d12f6a0fcdf",
"type": "leaf",
"state": {
"type": "empty",
@@ -29,7 +29,6 @@
{
"id": "6836caf2765d7139",
"type": "tabs",
"dimension": 69.27016645326505,
"children": [
{
"id": "c8718c0c63702202",
@@ -50,7 +49,7 @@
"state": {
"type": "search",
"state": {
"query": "sk-839b2fd5ec74530fe339c6640a7c2d486428101fbfdafc4c38824f9970d33046",
"query": "20260324082116",
"matchingCase": false,
"explainSearch": true,
"collapseAll": false,
@@ -74,12 +73,11 @@
]
},
{
"id": "729e97c586d5eaa9",
"id": "467278b27553fb8c",
"type": "tabs",
"dimension": 30.72983354673495,
"children": [
{
"id": "4c0b938080320781",
"id": "c7138b775f1dd80e",
"type": "leaf",
"state": {
"type": "recent-files",
@@ -92,7 +90,7 @@
}
],
"direction": "horizontal",
"width": 242.5
"width": 288.5
},
"right": {
"id": "ca733f6d5936ae40",
@@ -123,7 +121,6 @@
"state": {
"type": "backlink",
"state": {
"file": "000-Inbox/20260305103657.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -133,7 +130,7 @@
"unlinkedCollapsed": false
},
"icon": "links-coming-in",
"title": "20260305103657 的反向链接列表"
"title": "反向链接"
}
},
{
@@ -142,12 +139,11 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "000-Inbox/20260305103657.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "20260305103657 的出链列表"
"title": "出链"
}
},
{
@@ -191,7 +187,8 @@
"title": "脚注"
}
}
]
],
"currentTab": 2
},
{
"id": "ea8a40d57ef90e62",
@@ -212,7 +209,7 @@
}
],
"direction": "horizontal",
"width": 287.5
"width": 286.5
},
"left-ribbon": {
"hiddenItems": {
@@ -226,34 +223,42 @@
"obsidian-excalidraw-plugin:New drawing": false
}
},
"active": "00649b8cd88fe2b8",
"active": "f15a0d12f6a0fcdf",
"lastOpenFiles": [
"resource/前端/如何成为一个 React 工程师呢?.md",
"calendar/diary/2026-03-21.md",
"000-inbox/20260321211989.md",
"000-inbox/20260320234712.md",
"000-inbox/20260320124131.md",
"000-inbox/20260319165480.md",
"000-inbox/20260318101127.md",
"000-inbox/20260318100374.md",
"calendar/diary/2026-03-20.md",
"calendar/diary/2026-03-19.md",
"calendar/diary/2026-03-18.md",
"personal/TG 备忘录.md",
"work/移动杭研/开发记录/7.19.0/开发笔记.md",
"000-Inbox/20260321211989.md",
"000-Inbox/20260320234712.md",
"000-Inbox/20260320124131.md",
"work/移动杭研/AI 项目/IBS 智能体具体落实技术方案.md",
"work/移动杭研/AI 项目/CLAUDE.md.md",
"work/移动杭研/AI 项目/图纸-IBS 智能体-v3-项目架构.md",
"work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo 对象存储.md",
"work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo.md",
"work/移动杭研/AI 项目/ibs-ai 项目梳理.md",
"resource/ai/prompts/cosmic/Prompt 01 COSMIC 需求扩写.md",
"resource/ai/prompts/cosmic/Prompt 06 COSMIC 锐评.md",
"resource/ai/prompts/cosmic/Prompt 05 COSMIC 时序图.md",
"resource/ai/prompts/cosmic/Prompt 04 COSMIC PRD 文档.md",
"000-inbox/20260324090682.md",
"000-Inbox/20260324090682.md",
"000-inbox/20260324085410.md",
"000-inbox/20260324085482.md",
"000-inbox/20260324085466.md",
"000-Inbox/20260324085482.md",
"000-Inbox/20260324085410.md",
"000-Inbox/20260324085466.md",
"attachment/templates/日常记录-日记模板.md",
"attachment/templates/日常记录-闪念笔记.md",
"000-inbox/20260324084778.md",
"000-Inbox/20260324084778.md",
"work/移动杭研/开发记录/7.18.0/开发笔记.md",
"calendar/diary/2026-03-24.md",
"000-inbox/tg-bot.md",
"000-inbox/Docker 核心知识与实战笔记.md",
"attachment/Pasted image 20260324082116.png",
"000-inbox/0323-1.md",
"000-Inbox/20260324082507.md",
"000-inbox/20260324082570.md",
"000-inbox/202603232149292.md",
"000-inbox/20260324082507.md",
"000-inbox/20260324081861.md",
"000-inbox/20260323215788.md",
"000-inbox/20260323215783.md",
"000-Inbox/20260324082570.md",
"attachment/templates/时间戳笔记 1.md",
"attachment/image-20260324081512980.png",
"attachment/Pasted image 20260323220004.png",
"attachment/Pasted image 20260323214940.png",
"attachment/image-20260323215003621.png",
"attachment/images-uuid/3284aebc70ac4b04bed34178af47de22.png",
"attachment/images-uuid/44afb467c5294b4ea0a437b3b3258f5c.png",
"attachment/images-paste/image-20260323102328859.png",
"work/移动杭研/问题处理/2026-03",
"resource/ai/prompts/cosmic 业务版本",
"resource/ai/prompts/cosmic",
@@ -265,15 +270,7 @@
"resource/前端",
"resource/英语",
"attachment/images-paste/image-20260305082403915.png",
"attachment/image-20260305103708566.png",
"attachment/Pasted image 20260305103645.png",
"attachment/Pasted image 20260305103633.png",
"000-inbox/未命名.canvas",
"attachment/images-uuid/dd32291e71724c52a904aa80ce1fc59a.png",
"attachment/images-uuid/e9d6d33cd6a44bd0ab62b5999e04c7be.png",
"attachment/image-20260302225213302.png",
"attachment/Pasted image 20260302225154.png",
"resource/mermaid",
"attachment/images-uuid/1b6c8b1c84064481ac7c72347ba8e259.png"
"resource/mermaid"
]
}
@@ -0,0 +1,123 @@
# 🐳 Docker 核心知识与实战笔记
## 一、 Docker 核心工作流与常用命令速查表
### 1. 自定义镜像与分享工作流
- **流程**:下载镜像 -> 启动容器 -> 修改页面/配置 -> 保存镜像 (`commit`) -> 导出镜像 (`save`) -> 分享/加载 (`load`)
- `docker commit`:将修改后的容器提交为新的本地镜像。
- `docker save`:将镜像保存为 tar 归档文件(用于离线传输)。
- `docker load`:从 tar 归档文件中加载镜像。
### 2. 常用命令分类速查 (Cheat Sheet)
| 分类 | 命令示例 | 功能说明 |
| :--- | :--- | :--- |
| **镜像 (Image)** | `docker search` | 检索 Docker Hub 上的镜像 |
| | `docker pull` | 下载镜像到本地 |
| | `docker images` | 列出本地所有镜像 |
| | `docker rmi` | 删除本地镜像 |
| **容器 (Container)**| `docker run` | 创建并运行一个新容器 |
| | `docker ps` | 查看当前正在运行的容器 (`-a` 查看所有) |
| | `docker stop` / `start`| 停止 / 启动 容器 |
| | `docker restart` | 重启容器 |
| | `docker stats` | 查看容器资源实时使用状态 |
| | `docker logs` | 查看容器内部日志(排错必备) |
| | `docker exec` | 进入正在运行的容器内部执行命令 |
| | `docker rm` | 删除已停止的容器 |
| **分享与管理** | `docker login` | 登录 Docker 镜像仓库 |
| | `docker tag` | 给镜像打标签(重命名,准备推送) |
| | `docker push` | 将镜像推送到远程仓库 |
---
## 二、 数据持久化:目录挂载 vs 卷映射
Docker 提供了两种主要的数据持久化方式,通过 `-v` 参数实现:
### 1. 目录挂载 (Bind Mounts)
将宿主机的**绝对路径**直接挂载到容器内。
- **语法**`-v /宿主机绝对路径:/容器内路径`
- **示例**`-v /app/nghtml:/usr/share/nginx/html`
- **特点**:路径完全由用户掌控,适合挂载需要频繁修改的代码或配置文件。
### 2. 卷映射 (Named Volumes)
由 Docker 自动管理宿主机的存储目录,只需提供一个“卷名”。
- **语法**`-v 卷名:/容器内路径`
- **示例**`-v ngconf:/etc/nginx`
- **底层路径**:Docker 默认会将命名卷存放在宿主机的 `/var/lib/docker/volumes/<volume-name>/_data` 目录下。
- **特点**:Docker 统一管理,不用担心宿主机路径权限问题,适合持久化数据库数据等。
### 3. Volume 常用管理命令
- `docker volume ls`:列出所有由 Docker 管理的卷。
- `docker volume create <卷名>`:提前创建一个数据卷。
- `docker volume inspect <卷名>`:查看卷的详细信息(包含具体的 `Mountpoint` 宿主机物理路径)。
> ⚠️ **排错注意**:在挂载配置文件(如 nginx.conf)时,如果宿主机对应路径下没有该文件,直接挂载会导致容器内部找不到配置文件而启动失败(如截图中 `Exited (1)` 且日志报错 `open() "/etc/nginx/nginx.conf" failed`)。
---
## 三、 容器网络机制与自定义网络
### 1. 默认网络 (`docker0`) 的局限性
- Docker 会为每个容器分配一个唯一的内网 IP。
- **痛点**:由于容器重启等原因,**容器的 IP 是动态变化的**。默认的 `docker0` 桥接网络**不支持通过容器名(域名)进行内部互相解析**。
### 2. 解决方案:创建自定义网络
- **核心优势**:在自定义网络(如命名为 `mynet`)中,**容器名就是稳定的域名**。即使 IP 变了,容器之间依然可以通过容器名互相访问。
### 3. 实战案例:Redis 主从同步集群(通过容器名通信)
使用自定义网络,让从节点通过主节点的**容器名**进行连接,实现读写分离。
- **Master (主节点 - redis01)**:
- 宿主机端口: `6379`
- 环境变量: `REDIS_REPLICATION_MODE=master`, `REDIS_PASSWORD=123456`
- **Slave (从节点 - redis02)**:
- 宿主机端口: `6380`
- 环境变量:
- `REDIS_REPLICATION_MODE=slave`
- `REDIS_MASTER_HOST=redis01` (**重点:直接使用主节点的容器名**)
- `REDIS_MASTER_PORT_NUMBER=6379` (主节点内部端口)
- `REDIS_MASTER_PASSWORD=123456`
- `REDIS_PASSWORD=123456`
---
## 四、 Docker Compose 容器编排
当项目包含多个容器(如 App + MySQL + Redis)时,单个单个 `run` 非常繁琐,此时需要使用 Docker Compose。
### 1. 核心概念
通过一个 `compose.yaml` (或 `docker-compose.yml`) 声明式文件,一键管理整个项目的多个服务。
### 2. 常用操作命令
- `docker compose up -d`:**上线**(解析 yaml,创建网络/数据卷,后台启动所有容器)。
- `docker compose down`:**下线**(停止并删除 yaml 中定义的所有容器、网络)。
- `docker compose start [服务名1 服务名2]`:单独启动定义好的服务。
- `docker compose stop [服务名1 服务名2]`:单独停止服务。
- *(扩展)* `docker compose scale <服务名>=<数量>`:对某个服务进行扩缩容(注:新版语法多推荐使用 `up --scale`)。
### 3. `compose.yaml` 顶级元素构成
编写 yaml 文件时,主要包含以下几个顶级块(Top-level elements):
- `name`:项目名称
- `services`:**【核心】** 定义各个服务(如 web, db, cache),每个服务包含镜像、端口映射、环境变量等。
- `networks`:定义项目使用的自定义网络。
- `volumes`:定义项目使用的数据卷。
- `configs`:定义配置信息。
- `secrets`:定义敏感信息(如密码密钥)。
**官方参考文档查阅地址**
`https://docs.docker.com/compose/compose-file/` (编写 yaml 遇到属性不会写时,随时查阅 Reference 官方文档)。
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

-1
View File
@@ -1 +0,0 @@
<% tp.file.cursor() %>
+17
View File
@@ -0,0 +1,17 @@
# 任务
# 日志
# 总结
今天早晨起来之后,我们打算带田宝去白浮泉公园玩。
我们先去了上次那个有攀爬项目的一侧。发现田宝其实比较胆小,他在看到一些比较危险的东西后,是不会去做任何尝试的。我感觉这其实非常好,对他这个年龄段来说,这种性格能起到很好的保护作用。
后面我们去玩了滑梯。白浮泉这个滑梯有一个很大的问题,就是大人不能快速地上下看护小孩。看到好多老人自己带孩子,在那儿就很无力,因为小朋友从滑梯滑下去后,老人再下去会非常费劲。不过今天在外边吹风感觉很舒服,白浮泉那边的整体环境也要好很多。
中午 12 点左右,我们回家去肯德基吃了一个冰淇淋。田宝吃完饭之后就去睡觉了。
下午起床后,我看了一些 React 的课程,田宝则去公园找他的好朋友瑞瑞和凯凯玩。他们一直疯狂地跑到 7 点钟才回家,吃完饭后明显感觉他今天累坏了。
晚上我跟着 React 课程完成了那个“井字棋”的游戏。我感觉这个 React 课程真的让我眼前一亮,老师经常能预料到学习者会遇到什么问题以及如何去解决,没有站在高位者的姿态去讲课。
+73
View File
@@ -0,0 +1,73 @@
# 任务
- [x] 开发:参加 IBS 项目晨会,同步昨日问题跟进事项。明确外协人员 AI 代码提交规范。(李春良 0.5)
- [x] 开发:支撑 IBS V7.19.0 版本测试。新业务平面引入与系统集成实施。运营管理/统计分析/数据统计,全部的其他五个选项分别选择后查询,可以得出结论数据来源于新增平面(李春良 1)
- [x] 客响:每周一信安信息更新通知未发送。Mail rejected because email has 钓鱼网站2(张鹏豪 3
- [x] 项目:外协日报通报问题。2026.03.01-2026.03.22 这段时间一直在做 IBS 7.19.0 需求梳理、开发、自测,还有 IBS 智能体方案调研,工作内容连续性比较强。有些内容写得比较像,所以被判定为重复雷同。后面我会按每天实际完成的工作分别写明白,尽量写清当天处理了什么、进展到哪一步,避免再出现类似情况。(张鹏豪 1)
- [x] 项目:IBS 7.19.0 能力引入。NRWLXT-30741 BYOC 接口幂等核心代码能力输出,实现接口调用的稳定性和可重复执行能力。NRWLXT-30742 BYOC 文件管理核心代码能力输出,支持文件上传、下载、存储及访问全流程管理。NRWLXT-30743 BYOC 报表导出核心代码能力输出,实现报表数据高效生成、格式化与导出,支持多种格式和大数据量处理。(李春良 1)
- [x] 项目:BIS 7.19.0 AI 代码。Add NRWLXT-30729 BYAC CSPID-2026-00AQ1M AI 优化 新业务平面引入与系统集成实施。Add NRWLXT-30729 BYRC CLID-00ABRP 代码复用 新业务平面引入与系统集成实施。(李春良 0.5)
- [x] 项目:CDN 智能体技术研讨。关于语义路由是否需要通过 mcp 去决定方向。(张鹏豪 1)
# 日志
[关注点分离](https://zh.wikipedia.org/wiki/%E5%85%B3%E6%B3%A8%E7%82%B9%E5%88%86%E7%A6%BB)
[一次且仅一次](https://zh.wikipedia.org/wiki/%E4%B8%80%E6%AC%A1%E4%B8%94%E4%BB%85%E4%B8%80%E6%AC%A1)
每个需求必须有一次提交。
由于连续多天进行测试,所以出现XX天日报重复的情况
问题:2026-03-01至2026-03-22日存在10条日报异常记录
导向:
```
提醒:外协如有持续一段时间进行相同测试或者开发工作,请通知外协,日报中不要复制黏贴,会造成异常。有重复的工作,请每天展开描述一下,具体的工作内容和进展,降低重复率。如已经造成异常了,请在台账上备案,并确保下不为例
```
表格:
![](../../attachment/images-paste/image-20260323102328859.png)
序号 外协姓名 直属上级 自查问题分类 日报时间 原因说明 附件(截图) 备注
例 张三 李四 格式不规范/缺少归档路径/出现外链/重复雷同 2025.03.01-2025.03.05 由于连续多天进行测试,所以出现XX天日报重复的情况 截图
日报:
2026-03-16 的 归档地址 归档地址问题我写了。根据我的日报给我一份:重复雷同。原因说明。
这段时间一直在做 IBS 7.19.0 需求梳理、开发、自测,还有 IBS 智能体方案调研,工作内容连续性比较强。有些内容写得比较像,所以被判定为重复雷同。后面我会按每天实际完成的工作分别写明白,尽量写清当天处理了什么、进展到哪一步,避免再出现类似情况。
```
Add NRWLXT-30741 BYOC 接口幂等核心代码能力输出,实现接口调用的稳定性和可重复执行能力。
Add NRWLXT-30742 BYOC 文件管理核心代码能力输出,支持文件上传、下载、存储及访问全流程管理。
Add NRWLXT-30743 BYOC 报表导出核心代码能力输出,实现报表数据高效生成、格式化与导出,支持多种格式和大数据量处理。
```
```
Add NRWLXT-30729 BYAC CSPID-2026-00AQ1M AI 优化 新业务平面引入与系统集成实施
CSPID-2026-00AQ1M
Add NRWLXT-30729 BYRC CLID-00ABRP 代码复用 新业务平面引入与系统集成实施
```
```
ps -ef | grep xinan
1983 2025-12-08 18:13:12 root kill -9 25856
1984 2025-12-08 18:13:15 root nohup java -jar xinan-ibs-mock.jar > xinan.log &
```
# 总结
+8
View File
@@ -0,0 +1,8 @@
# 任务
- [ ] 开发:参加 IBS 项目晨会,同步昨日问题跟进事项。(李春良)
- [ ] 开发:支撑 IBS V7.19.0 版本测试。新业务平面引入与系统集成实施。(李春良)
# 日志
# 总结
+1
View File
@@ -0,0 +1 @@
cosmic ai 工具部署、Dify、割接、Java 枚举问题、李虎 rag、四六级、龙抬头、小寨、张泽、全季、白浮泉、react
@@ -708,6 +708,15 @@ export default function App() {
```
---
| 模式 | 英文 | 中文 | 类比 | 特点 | SEO |
| --- | ----------------------- | ----------- | ---------------- | -------------------- | -------- |
| CSR | Client-Side Rendering | 客户端渲染 | 外卖(现点+等) | 慢启动,但灵活 | ❌ |
| SSR | Server-Side Rendering | 服务端渲染 | 餐厅现做 | 平衡(快+动态) | ✅ |
| SSG | Static Site Generation | 静态站点生成 | 预制菜 | 极快,但不灵活 | ✅ |
| RSC | React Server Components | React 服务端组件 | 后厨分工(部分菜在厨房直接处理) | 组件在服务器执行,不进浏览器,减少 JS | ⚠️(间接有利) |
# CSS
顶级作用域
@@ -0,0 +1,95 @@
---
日期: 2026-03-23 14:45
来源: 客响
---
# 问题详情
最后一次发送 3.9 日。
![](../../../../attachment/images-uuid/3284aebc70ac4b04bed34178af47de22.png)
# 处理过程
```
功能可用
2026-03-19 07:05:16 [61524c5bc039452b] [61524c5bc039452b] [] [portal-116] [http-nio-8080-exec-243] INFO com.cmcc.cdn.platform.portal.service.impl.EmailServiceImpl 705 sendGenericTemplateEmail - 【通用模板邮件发送】邮件的内容:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>cache+需求变更工单(005-20240424001)配置失败</title>
</head>
<body>
<div>
<p>您好!您申请的<span>cache+需求变更工单(005-20240424001)配置失败</span>,您可登陆IBS系统查看详细工单配置信息。</p>
</div>
</body>
</html>
2026-03-19 07:05:17 [61524c5bc039452b] [61524c5bc039452b] [] [portal-116] [http-nio-8080-exec-243] INFO com.cmcc.cdn.platform.portal.service.impl.EmailServiceImpl 708 sendGenericTemplateEmail - 【通用模板邮件发送】发送邮件结束
```
可能
1. 邮件服务超时 - 26秒后连接断开
2. 邮件内容过大 - 附件或HTML内容超限
3. SMTP服务器拒绝 - 收件人过多(9个主送+7个密送=16个)或邮件大小限制
```
hanqiyawl@chinamobile.com,luobingqing@chinamobile.com,zhaozibing@chinamobile.com;xuxuehan@cmhi.chinamobile.com,jigaofeng@cmhi.chinamobile.com,lichunliang@cmhi.chinamobile.com,zhangpenghao@cmhi.chinamobile.com,15033848944@163.com,zhaopuming@cmhi.chinamobile.com,13649508243@163.com
zhangpenghao@cmhi.chinamobile.com;15033848944@163.com
```
```
第二部分有、第一部分没有的(第二部分多出的):
download.vwan.com.cn
play.vwan.com.cn
po.xzalsx.cn
to.xzalsx.cn
llcdn.xzalsx.cn
zzcdn.xzalsx.cn
hw-rtc.ktwhymjzkj.cn
hw-kuai-flv.ktwhymjzkj.cn
hw-tui.ktwhymjzkj.cn
```
# 总结
Mail rejected because email has %E9%92%93%E9%B1%BC%E7%BD%91%E7%AB%992
Mail rejected because email has 钓鱼网站2
download.vwan.com.cn 60000016129 深圳华为云计算技术有限公司
play.vwan.com.cn 60000016129 深圳华为云计算技术有限公司
po.xzalsx.cn 60000016110 深圳华为云计算技术有限公司
to.xzalsx.cn 60000016110 深圳华为云计算技术有限公司
llcdn.xzalsx.cn 60000016110 深圳华为云计算技术有限公司
zzcdn.xzalsx.cn 60000016110 深圳华为云计算技术有限公司
hw-rtc.ktwhymjzkj.cn 60000016128 深圳华为云计算技术有限公司
hw-kuai-flv.ktwhymjzkj.cn 60000016128 深圳华为云计算技术有限公司
hw-tui.ktwhymjzkj.cn 60000016128 深圳华为云计算技术有限公司
![](../../../../attachment/images-uuid/44afb467c5294b4ea0a437b3b3258f5c.png)