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

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