# ce-cloud **Repository Path**: MJYyyyy/ce-cloud ## Basic Information - **Project Name**: ce-cloud - **Description**: 持续学习,自用,持续集成Go/C++、存储和云原生等知识,构建一个简单的云原生框架 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-30 - **Last Updated**: 2025-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ce-cloud - [English Version](README.en.md) ### 介绍 1. 持续学习,集成Go/C++,存储和云原生等知识,构建一个简单的云原生应用程序,内容包括但不限于,web后台管理系统,web论坛,简易对战游戏,可以支持高并发 2. 这是一个插件式的Go/C++框架 3. 此框架项目当前主要为ce-cloud-service项目服务 ### 支持插件 1. db-sql: PostgreSql、Mysql 2. db-nosql: MongoDB 3. 缓存: Memcached(暂时不可用,请等待后续完善)、Redis 4. 服务发现:Zookeeper、Consul 5. 消息队列:Kafka(正在添加中) 6. 链路追踪:OpenTracing(正在添加中) 7. 微服务框架: Go-Micro/v4 ### 文件目录结构 ```csharp ce-cloud/ ├── cmd/ # 项目启动、编译、打包相关的脚本文件,脚本文件夹,例如:数据库初始化脚本、部署脚本等 │ ├── deployments/ # 部署配置文件夹 │ │ ├── kubernetes/ │ │ │ ├── deployment.yaml # Kubernetes部署配置示例 │ │ │ └── service.yaml # Kubernetes服务配置示例 │ │ └── ... │ ├── dockers/ # 一些基础的docker-compose文件 │ │ └── ... │ ├── environmental_attachments/ # 一些环境依赖的.exe文件 | | └── ... │ ├── scripts/ │ │ ├── makefile # makefile文件 | │ ├── init_db.sh # 初始化数据库脚本示例 │ | ├── deploy.sh # 自动化部署脚本示例 | | └── ... │ └── ... ├── configs/ # 全局配置文件夹 │ ├── index.go # 主配置文件函数 │ ├── c_cache | | ├──cache.go # 读取cache.yaml文件函数 | | └──cache.yaml # 存放cache的配置yaml文件 | | └── ... │ ├── c_db | | ├──db.go # 读取db.yaml文件函数 | | └──db.yaml # 存放db的配置yaml文件 | | └── ... │ ├── c_cache | | ├──service_discovery.go # 读取 服务发现.yaml 文件函数 | | ├──service_discovery.yaml # 存放服务发现的配置yaml文件 | | └── ... | └── ... ├── documents/ # 一些文档和笔记 │ └── ... ├── includes/ # C++相关的代码 | | ├──h/ # 头文件 | | ├──src/ # C++源文件 | | └── ... │ └── ... ├── pkg/ # 公共可复用包,例如:中间件、数据结构等 | ├── data_source/ # 数据源,存放链接db、cache相关的方法 | │ ├── d_cache/ # 存放链接缓存相关的方法、函数等 │ | | ├── engine/ # 缓存读写引擎(连接池) │ │ | ├── implement.go # cache的实现 │ │ | ├── implement_memcached.go # 使用memcached实现cache │ │ | ├── interface.go # cache的抽象接口 │ │ | ├── memcached.go # 连接memcached │ │ | └── ... │ │ ├── d_db/ # 存放连接数据库相关的方法、函数等 │ │ │ ├── engine/ # 数据库读写引擎(连接池) │ │ │ ├── mongodb.go # 连接mongodb │ │ │ ├── postgresql.go # 连接postgreSql │ │ | └── ... │ │ ├── d_RAM/ # 存放内存数据池相关的方法、函数等 │ │ │ ├── index.go # 函数入口 │ │ | └── ... │ │ ├── d_service_discovery/ # 存放服务发现相关的方法、函数等 | │ └── ... │ ├── data_type/ # 通用的数据结构 │ ├── define/ # 全局定义常量 │ ├── log/ # 日志输出包 │ ├── middleware/ │ │ └── index.go # 一些中间件 │ ├── models/ │ │ └── models.go # 数据库模型 | | └──services | | └──model_xxx # 对应微服务下的model | | ├──xxx_nosql.go # 非结构化的数据model | | └──xxx_sql.go # 结构化的数据model │ ├── protos/ # pb文件 │ ├── service/ # │ │ └── p_go_micro/ # go-micro服务初始化相关的方法 │ └── ... ├── tests/ # 测试文件夹 │ ├── unit_test/ # 单元测试 │ │ └── ... │ └── pprof/ # pprof测试 │ └── ... ├── README.md # 项目说明文档 ├── LICENSE # 许可证文件 └── ... 文件结构说明 1. cmd/:存放脚本文件、相关环境依赖文件和存放部署配置文件。 2. configs/:存放全局配置文件,例如数据库连接信息、服务端口配置等。 3. documents/: 存放一些文档与笔记 4. includes/: 存放C++相关的代码 5. pkg/:存放公共的可复用包,例如中间件、数据结构定义等,这些包可以跨模块引用。 6. tests/:存放单元测试文件,每个服务应该有对应的单元测试文件,用于确保各功能模块的正确性。 7. README.md:项目的说明文档,包含项目概述、安装指南、使用说明等信息。 8. LICENSE:项目的许可证文件,说明代码的使用条款和条件。 ``` ### 规范 #### 命名规范 1. 文件及文件夹命名:蛇形命名法 #### Git提交规范 1. feat: 新功能 2. fix: 修复bug 3. docs: 文档更改 4. style: 代码格式(不影响代码运行的变动) 5. refactor: 重构(即不是新增功能,也不是修复bug的代码变动) 6. test: 添加或修改测试 7. chore: 其他杂务 ### 使用说明 #### CMakeList.txt 说明 1. mkdir build 2. cd build 3. cmake .. 4. make 5. make install