README.md
2.08 KB
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二进制下载地址: https://github.com/protocolbuffers/protobuf/releases/tag/v21.0-rc2
win下载3.8版本。其他平台随意,没遇到问题。
protoc-go-inject-tag: 目的是往protos文件中打入自定义标签
$ go get github.com/favadi/protoc-go-inject-tag
protoc-go & etcd
$ go get go.etcd.io/etcd/client/v3
$ go get google.golang.org/protobuf/cmd/protoc-gen-go
$ 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