note/note/learn/lib/zmin.md
2023-08-25 16:16:33 +08:00

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",
}
)
```