Skip to content

Ass-Sniper/book_cloud_naive_go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README.md 内容涵盖了项目简介、目录结构说明和基本使用方法,适合作为该项目的入门文档。


# Cloud Naive KVStore

这是一个基于 Go 编写的轻量级键值存储服务,
1)具备Web UI、用户认证、TTL 支持、HTTPS 安全访问、Docker 编排部署等功能,
2)目标:学习云原生应用开发和涉及技术的原理。

---

## 📁 项目目录结构

```text
chap5/
├── build/                  # 构建产物目录(如编译后的可执行文件)
├── cmd/kvstore/           # 主程序入口(main.go)
├── config/                 # 配置管理
│   ├── config.json         # 应用主配置文件
│   ├── locales/            # 国际化语言文件
│   └── nginx/              # Nginx 配置
│       ├── certs/          # HTTPS 证书目录
│       ├── Dockerfile.nginx # Nginx 容器构建文件
│       └── nginx.conf      # Nginx 主配置
├── data/                  # 运行时数据(数据库文件、用户信息)
├── docker/                # Docker 配置,包括 Compose 和 Dockerfile
├── docs/                  # 项目相关文档(拓扑、HTTPS、健康检查等)
├── internal/              # 核心逻辑模块(KV存储、认证、配置、日志等)
├── scripts/               # 辅助脚本(构建、启动、证书生成等)
└── web/                   # 前端页面和模板(静态资源与 HTML 模板)

🚀 功能特性

  • 支持键值存储、编辑和 TTL 设置
  • 用户登录、注册与会话管理
  • Web UI 交互界面
  • Docker Compose 快速部署
  • Nginx 代理,支持 HTTPS 加密传输
  • 健康检查与 pprof 调试接口

🛠️ 快速开始

1. 构建与运行(需要已安装 Docker 和 Docker Compose)

cd chap5/docker
# 镜像拉取
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/ubuntu:20.04
# 镜像重命名
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/ubuntu:20.04  docker.io/library/ubuntu:20.04
# 容器构建 & 运行: -d 后台运行 detaching
docker compose down && docker compose up -d --build

访问地址:

2. 停止服务

docker compose down

📄 文档列表(docs/)

  • 00-docker-kvstore-topology.md:Docker 网络拓扑、容器结构与内核交互图
  • 01-container-cloudnative-tech-overview.md:容器化与云原生技术演进(涵盖 Docker、Containerd、Kubernetes 和 Ansible 的关系与发展)
  • 99-app-support-https.md:HTTPS 支持与证书配置说明
  • 99-docker-compose.md:Docker Compose 详解文档
  • 99-docker-usage.md:Docker 使用技巧与命令集合
  • 99-app-healthcheck-failure.md:容器健康检查失败分析
  • 99-Go-Runtime-and-Linux-Syscalls-Implementation.md:Go 运行时与 Linux 系统调用关系概述

🙋‍♂️ 开发者提示

  • 使用 internal/ 模块划分保持良好封装性
  • 所有服务通过统一配置文件启动,路径为 config/config.json
  • HTTPS 证书存放于 config/nginx/certs/,可通过 scripts/generate_cert.sh 生成
  • 日志与调试功能集成在 internal/loggerpprof 接口中
  • 多语言支持文件存放于 config/locales/ 目录

📦 依赖环境

  • Go 1.24.0+(具体查看go.mod文件)
kay@kay-vm:docker$ go version
go version go1.24.3 linux/amd64
kay@kay-vm:docker$
  • Docker & Docker Compose
kay@kay-vm:docker$ docker version
Client: Docker Engine - Community
 Version:           28.1.1
 API version:       1.49
 Go version:        go1.23.8
 Git commit:        4eba377
 Built:             Fri Apr 18 09:52:18 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.1.1
  API version:      1.49 (minimum version 1.24)
  Go version:       go1.23.8
  Git commit:       01f442b
  Built:            Fri Apr 18 09:52:18 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.27
  GitCommit:        05044ec0a9a75232cad458027ca83437aae3f4da
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
kay@kay-vm:docker$
kay@kay-vm:docker$
kay@kay-vm:docker$
kay@kay-vm:docker$
kay@kay-vm:docker$ docker compose version
Docker Compose version v2.35.1
kay@kay-vm:docker$
  • Nginx(通过容器构建, 见chap5/config/nginx/Dockerfile.nginx)

📝 License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors