128 lines
2.3 KiB
Markdown
128 lines
2.3 KiB
Markdown
# zmin
|
|
|
|
# 网络架构
|
|
|
|
- 指标
|
|
- 负载
|
|
- 负载均衡
|
|
- 同类型服务器负载均衡
|
|
- 可扩展性
|
|
- 同类型服务器可自由扩展
|
|
- 游戏服务可按路由扩展
|
|
- 容错率
|
|
- 每个类型的服务器都为服务器组
|
|
- 容灾
|
|
- 定时备份数据到数据库
|
|
- 而不是只在下线后保存数据
|
|
|
|
数据是隔离的,只需要关心本服数据
|
|
|
|
## VersionCenter
|
|
|
|
- 版本服务器
|
|
- conn = Login + Center
|
|
|
|
## Center
|
|
|
|
- 中心服务器
|
|
- 分组?先不分了
|
|
- conn = Login + Dispatcher + Gate + Game + Center
|
|
- data = sync component
|
|
|
|
## Login
|
|
|
|
- 账号登陆
|
|
- 分组,负载均衡
|
|
- conn = Client(临时) + Gate + Center
|
|
- data = Login Request
|
|
|
|
## Gate
|
|
|
|
- conn = Client + Dispatcher + Center
|
|
- data = All Game Data (Client )
|
|
|
|
## Dispatcher
|
|
|
|
- conn = Gate + Game + Dispatcher + Center
|
|
- data = All Game Data / n
|
|
|
|
## Game
|
|
|
|
```go
|
|
var service UService
|
|
err := zcache.GetMongoClient().FindOne(&service, bson.M{"type": zpb.COMPONENT_TYPE_CENTER})
|
|
var serviceList []UService
|
|
err := zcache.GetMongoClient().Find(Service, bson.M{"type": zpb.COMPONENT_TYPE_LOGIN}, &serviceList)
|
|
service := &UService{
|
|
Id: Sequence(),
|
|
ListenAddr: listenAddr,
|
|
Type: zpb.COMPONENT_TYPE_LOGIN,
|
|
Path:path,
|
|
Property: writeLoginProperty(&bytes , name , centerAddr),
|
|
}
|
|
zcache.GetMongoClient().UpdateOrInsert(service,bson.M{"id":service.Id})
|
|
zcache.GetMongoClient().ClearTable(Service)
|
|
```
|
|
|
|
|
|
|
|
```go
|
|
package zconf
|
|
|
|
const (
|
|
MT_TO_GAME_START = 1000
|
|
|
|
MT_TO_GAME_END = 10000
|
|
|
|
CodeOk = 0
|
|
CodeError
|
|
|
|
MT_SERVER_TYPE_START = 1
|
|
// MT_TO_SERVER
|
|
// MT_ADD_COMPONENT
|
|
MT_ADD_ENGINE_COMPONENT = 2
|
|
|
|
// MT_CENTER_TO_OTHER
|
|
MT_ADD_ENGINE_COMPONENT_ACK = 10
|
|
MT_ADD_ENGINE_COMPONENT_LIST = 11
|
|
|
|
// MT_CLIENT_TO_GATE
|
|
MT_GET_ALL_LOGIN_COMPONENT = 20
|
|
|
|
// MT_TO_ALL
|
|
MT_SYNC_PROXY_PROPERTY = 30
|
|
MT_SET_REMOTE_PROPERTY = 31
|
|
)
|
|
|
|
var (
|
|
CommandList_name = map[int32]string{
|
|
0: "MT_INVALID",
|
|
MT_SERVER_TYPE_START: "zpb.SERVER_TYPE_START",
|
|
MT_ADD_ENGINE_COMPONENT: "zpb.ADD_ENGINE_COMPONENT",
|
|
MT_ADD_ENGINE_COMPONENT_ACK: "zpb.ADD_ENGINE_COMPONENT_ACK",
|
|
MT_ADD_ENGINE_COMPONENT_LIST: "zpb.ADD_ENGINE_COMPONENT_LIST",
|
|
MT_GET_ALL_LOGIN_COMPONENT: "zpb.GET_ALL_LOGIN_COMPONENT",
|
|
MT_SYNC_PROXY_PROPERTY: "zpb.SYNC_PROXY_PROPERTY",
|
|
MT_SET_REMOTE_PROPERTY: "zpb.SET_REMOTE_PROPERTY",
|
|
}
|
|
)
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|