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