Skip to content

用go语言实现 web框架Gee、分布式缓存GeeCache、ORM框架GeeORM、rpc框架GeeRPC

Notifications You must be signed in to change notification settings

CodingCaius/gee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

7天用Go从零实现Web框架 - Gee

Gee 是一个模仿 gin 实现的 Web 框架。

  • 第一天:前置知识(http.Handler接口) | Code
  • 第二天:上下文设计(Context) | Code
  • 第三天:Trie树路由(Router) | Code
  • 第四天:分组控制(Group) | Code
  • 第五天:中间件(Middleware) | Code
  • 第六天:HTML模板(Template) | Code
  • 第七天:错误恢复(Panic Recover) | Code

7天用Go从零实现ORM框架 GeeORM

GeeORM 是一个模仿 gormxorm 的 ORM 框架 geeorm 接口设计上主要参考了 xorm,一些细节实现上参考了 gorm。
gorm 目前支持的特性有:
表的创建、删除、迁移。
记录的增删查改,查询条件的链式操作。
单一主键的设置(primary key)。
钩子(在创建/更新/删除/查找之前或之后)
事务(transaction)。

  • 第一天:database/sql 基础 | Code
  • 第二天:对象表结构映射 | Code
  • 第三天:记录新增和查询 | Code
  • 第四天:链式操作与更新删除 | Code
  • 第五天:实现钩子(Hooks) | Code
  • 第六天:支持事务(Transaction) | Code
  • 第七天:数据库迁移(Migrate) | Code

7天用Go从零实现分布式缓存 GeeCache

GeeCache 是一个模仿 groupcache 实现的分布式缓存系统
支持特性有:

单机缓存和基于 HTTP 的分布式缓存
最近最少访问(Least Recently Used, LRU) 缓存策略
使用 Go 锁机制防止缓存击穿
使用一致性哈希选择节点,实现负载均衡
使用 protobuf 优化节点间二进制通信

  • 第一天:LRU 缓存淘汰策略 | Code
  • 第二天:单机并发缓存 | Code
  • 第三天:HTTP 服务端 | Code
  • 第四天:一致性哈希(Hash) | Code
  • 第五天:分布式节点 | Code
  • 第六天:防止缓存击穿 | Code
  • 第七天:使用 Protobuf 通信 | Code

7天用Go从零实现RPC框架 GeeRPC

GeeRPC 是一个基于 net/rpc 开发的 RPC 框架 GeeRPC 是基于 Go 语言标准库 net/rpc 实现的,添加了协议交换、服务注册与发现、负载均衡等功能。
GeeRPC 选择从零实现 Go 语言官方的标准库 net/rpc,并在此基础上,新增了协议交换(protocol exchange)、注册中心(registry)、服务发现(service discovery)、负载均衡(load balance)、超时处理(timeout processing)等特性。分七天完成,最终代码约 1000 行

  • 第一天 : 服务端与消息编码 | Code
  • 第二天 : 支持并发与异步的客户端 | Code
  • 第三天 : 服务注册 | Code
  • 第四天 : 超时处理(timeout) | Code
  • 第五天 : 支持HTTP协议 | Code
  • 第六天 : 负载均衡(load balance) | Code
  • 第七天 : 服务发现与注册中心 | Code

About

用go语言实现 web框架Gee、分布式缓存GeeCache、ORM框架GeeORM、rpc框架GeeRPC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages