feat(fullstack): 接入 MySQL 8.0 持久化与 Spring Boot 3 分层企业级架构,支持文章与评论完整 CRUD
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
-- 创建数据库
|
||||
CREATE DATABASE IF NOT EXISTS `my_blog` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
USE `my_blog`;
|
||||
|
||||
-- 1. 分类表
|
||||
CREATE TABLE IF NOT EXISTS `category` (
|
||||
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
`name` VARCHAR(50) NOT NULL UNIQUE,
|
||||
`description` VARCHAR(255),
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 2. 文章表
|
||||
CREATE TABLE IF NOT EXISTS `post` (
|
||||
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
`title` VARCHAR(255) NOT NULL,
|
||||
`summary` VARCHAR(500),
|
||||
`content` LONGTEXT NOT NULL,
|
||||
`author` VARCHAR(50) DEFAULT '旺总',
|
||||
`category_name` VARCHAR(50) DEFAULT '技术杂谈',
|
||||
`tags` VARCHAR(255),
|
||||
`read_time` VARCHAR(20) DEFAULT '3 min',
|
||||
`views` INT DEFAULT 0,
|
||||
`likes` INT DEFAULT 0,
|
||||
`status` VARCHAR(20) DEFAULT 'PUBLISHED',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 3. 评论表
|
||||
CREATE TABLE IF NOT EXISTS `comment` (
|
||||
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
`post_id` BIGINT NOT NULL,
|
||||
`author` VARCHAR(50) NOT NULL,
|
||||
`content` TEXT NOT NULL,
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX `idx_post_id` (`post_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 插入默认分类
|
||||
INSERT IGNORE INTO `category` (`name`, `description`) VALUES
|
||||
('云原生 & Linux', '容器化编排、GCP/云服务器运维、系统调优与网络配置实战'),
|
||||
('Java & Spring Boot', 'Spring Boot 3 微服务架构、JPA 数据库持久化与后端工程规范'),
|
||||
('AI & 本地模型', 'Ollama 本地大模型部署、DeepSeek R1 性能压测与应用集成'),
|
||||
('全栈开发 & CI/CD', '前后端分离架构、Gitea Actions 自动化流水线交付');
|
||||
|
||||
-- 插入预置精品文章
|
||||
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
|
||||
SELECT
|
||||
'云原生实践:在 Google Cloud 台湾节点搭建高性能 Ubuntu 与 1Panel',
|
||||
'本文记录了如何通过 GCP 赠金在亚洲低延迟机房部署 4核16G 高性能云服务器,并使用现代化容器面板 1Panel 进行运维管理实录。',
|
||||
'# 云原生实践:在 Google Cloud 台湾节点搭建高性能服务器\n\n在挑选云服务器的过程中,综合对比了各大厂商的免费策略与性能表现,最终选择了 **Google Cloud 台湾节点 (`asia-east1`)**。\n\n## 核心硬件与网络配置\n- **规格**:`e2-standard-4`(4 vCPU,16 GB 内存)\n- **系统**:Ubuntu 22.04 LTS (x86_64)\n- **延迟**:到中国大陆仅 30~50ms,操作极为丝滑。\n\n## 为什么采用 1Panel 面板?\n相比传统臃肿的面料,1Panel 深度拥抱 **Docker 容器化**,所有应用(MySQL、OpenResty、Gitea)完全容器隔离,真正做到“环境随用随建,数据挂载持久化”。\n\n```bash\n# 快速检查 Docker 运行状态\ndocker ps --format "table {{.Names}}\\t{{.Status}}\\t{{.Ports}}"\n```\n\n> 💡 **运维心得**:永远在云平台控制台统一放行防火墙端口,切勿盲目在系统内部启用 UFW,避免失联风险。',
|
||||
'旺总',
|
||||
'云原生 & Linux',
|
||||
'GCP,Ubuntu,1Panel,Linux',
|
||||
'4 min',
|
||||
648,
|
||||
52,
|
||||
NOW()
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '云原生实践:在 Google Cloud 台湾节点搭建高性能 Ubuntu 与 1Panel');
|
||||
|
||||
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
|
||||
SELECT
|
||||
'探索本地大模型:从 Ollama 运行 DeepSeek R1 到 CPU 推理性能调优',
|
||||
'深度解析在纯 CPU 服务器上运行 DeepSeek R1 和通义千问 2.5 的真实表现,揭开 2050 Token 预填充延迟背后的机制。',
|
||||
'# 探索本地大模型:从 Ollama 到 Open WebUI 性能调优实战\n\n近期 DeepSeek R1 推理思考模型火遍全球,我们在 4核16G 的服务器上进行了本地大模型的全链路压测。\n\n## 1. 架构搭建\n- **模型发动机**:`Ollama` 容器\n- **交互界面**:`Open WebUI` 容器\n- **网络通信**:通过 Docker 网关 `http://172.17.0.1:11434` 极速直连\n\n## 2. 性能排查与调优秘籍\n测试过程中遇到了“每次提问卡顿 50 秒”的问题,经过 `top` 分析和指标剖析:\n1. **解除容器 CPU 配额**:确保 4 线程全开(`eval rate` 提升至 14 tokens/s);\n2. **内存永久常驻**:注入 `OLLAMA_KEEP_ALIVE=-1`,避免 5 分钟超时后重新读盘;\n3. **清空全局默认 Prompt**:消除了默认附带的 2050 历史 Token,读题耗时从 60s 骤降至 0.2s!\n\n```bash\n# 测试模型运行性能\ndocker exec -it 1Panel-ollama-nzre ollama run qwen2.5:1.5b --verbose\n```\n\n> 纯 CPU 跑 7B 参数是物理带宽瓶颈,日常开发推荐搭配 1.5B~3B 模型,速度与逻辑达到最佳平衡!',
|
||||
'旺总',
|
||||
'AI & 本地模型',
|
||||
'DeepSeek,Ollama,OpenWebUI,性能调优',
|
||||
'6 min',
|
||||
982,
|
||||
88,
|
||||
NOW()
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '探索本地大模型:从 Ollama 运行 DeepSeek R1 到 CPU 推理性能调优');
|
||||
|
||||
INSERT INTO `post` (`title`, `summary`, `content`, `author`, `category_name`, `tags`, `read_time`, `views`, `likes`, `created_at`)
|
||||
SELECT
|
||||
'全栈工程师实战:Spring Boot 3 + MySQL 8.0 持久化与 Gitea CI/CD 自动化交付',
|
||||
'从零构建工业级 Spring Boot 3 分层架构,结合 MySQL 8.0 数据库持久化存储与私有 Gitea Actions 自动化流水线。',
|
||||
'# 全栈工程化实践:Spring Boot 3 + MySQL 8.0 + CI/CD 自动化\n\n现代化开发的精髓在于**“把数据交给专业数据库持久化,把重复劳动交给自动化流水线”**。\n\n## 全栈架构一览\n```text\n[开发者本地 IDEA] ──git push──▶ [私有 Gitea 仓库]\n │\n (Gitea Actions 触发流水线)\n ▼\n [Docker Compose 全栈构建]\n │\n ┌───────────────────────────┼───────────────────────────┐\n ▼ ▼ ▼\n [MySQL 8.0 容器] [Spring Boot 3 容器] [Nginx 静态反代容器]\n```\n\n## 数据持久化规范\n- 数据文件挂载至命名卷 `mysql_data`,容器重启或重建数据零丢失;\n- Spring Data JPA 实现对象关系映射,自动完成数据库结构维护;\n- 统一 RESTful API 与响应封装,全栈开发得心应手!',
|
||||
'旺总',
|
||||
'全栈开发 & CI/CD',
|
||||
'Spring Boot,MySQL,JPA,CI/CD',
|
||||
'5 min',
|
||||
756,
|
||||
64,
|
||||
NOW()
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `post` WHERE `title` = '全栈工程师实战:Spring Boot 3 + MySQL 8.0 持久化与 Gitea CI/CD 自动化交付');
|
||||
Reference in New Issue
Block a user