项目简介
本项目是一系列运用Go语言从零开始实现多种实用框架和工具的实践项目。其中涵盖模仿gin的Web框架Gee、类似groupcache的分布式缓存GeeCache、模仿gorm和xorm的ORM框架GeeORM、基于net/rpc开发的RPC框架GeeRPC,以及一些WebAssembly使用示例。通过这些项目,能深入掌握Go语言在不同领域的应用和开发技巧。
项目的主要特性和功能
Web框架Gee
- 上下文设计,便于处理请求和响应信息。
- Trie树算法实现高效路由匹配。
- 支持分组控制,方便管理路由组。
- 中间件机制,可进行日志记录、权限检查等操作。
- 支持HTML模板渲染,动态生成响应内容。
- 错误恢复机制,保障框架健壮性。
分布式缓存GeeCache
- LRU缓存淘汰策略,有效管理缓存空间。
- 支持单机并发缓存,提高访问效率。
- 搭建HTTP服务端,实现网络访问。
- 一致性哈希算法,解决分布式节点缓存分配问题。
- 防止缓存击穿功能。
- 使用Protobuf作为RPC数据交换类型。
ORM框架GeeORM
- 对象表结构映射,方便数据库操作。
- 支持记录的增、查、改、删操作。
- 链式操作功能,使数据库操作更简洁。
- 支持钩子函数,可执行额外逻辑。
- 支持事务处理,确保数据操作一致性。
- 提供数据库迁移功能。
RPC框架GeeRPC
- 基于Go标准库net/rpc,添加协议交换、服务注册与发现、负载均衡等功能。
- 支持并发与异步客户端调用。
- 超时处理机制,避免长时间等待。
- 支持HTTP协议,方便调试。
WebAssembly示例
提供Hello World、注册函数、操作DOM、回调函数等使用示例。
安装使用步骤
假设用户已经下载了本项目的源码文件。
环境准备
确保已经安装了Go语言开发环境。
运行项目
Web框架Gee
进入gee-web
目录下对应的天数代码目录,例如gee-web/day1-http-base
,执行以下命令:
sh
go run main.go
分布式缓存GeeCache
进入gee-cache
目录下对应的天数代码目录,例如gee-cache/day1-lru
,执行以下命令:
sh
go run main.go
ORM框架GeeORM
进入gee-orm
目录下对应的天数代码目录,例如gee-orm/day1-database-sql
,执行以下命令:
sh
go run main.go
RPC框架GeeRPC
进入gee-rpc
目录下对应的天数代码目录,例如gee-rpc/day1-codec
,执行以下命令:
sh
go run main.go
WebAssembly示例
进入demo-wasm
目录下对应的示例目录,例如demo-wasm/hello-world
,按照Go WebAssembly简明教程
中的步骤进行操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】