README.md
Pro2dServer
这是pro2d项目的服务器, 使用golang搭建
技术点
一个服务器需要的组件:
- 数据库
- 日志
- 集群
- 分布式
- 热更
技术点:
- mongo
- redis
- etcd
- proto + models 查询
- golang plugin
目录结构
.
├── bin
├── cmd                 //入口文件
├── conf                //配置文件
├── csvdata             //csv的golang struct
├── doc                 //文档
├── docker              //docker部署
├── protos
│   ├── doc             //协议文档
│   └── pb              //生成的pb.go文件
├── src                 //逻辑目录
│   ├── actions         //逻辑处理
│   ├── common
│   ├── components      //组件
│   │   ├── db          
│   │   ├── etcd
│   │   ├── jwt
│   │   ├── logger
│   │   └── net         //网络组件(http + tcp)
│   ├── models          //数据模型
│   ├── plugin          //逻辑热更的插件
│   └── utils           //通用函数
├── test                //测试
├── tools               //工具(proto自动生成协议号,csv自动生成struct)
环境安装
protoc-go-inject-tag: 目的是往protos文件中打入自定义标签
$ go get github.com/favadi/protoc-go-inject-tag
etcd
$ go get go.etcd.io/etcd/client/v3
$ go install google.golang.org/protobuf/cmd/protoc-gen-go
$ go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
文档
Usage
编译 & 运行 && 游戏服 & 登录服务
$ make game
$ make account
测试
$ make test