集群架构优化
This commit is contained in:
parent
39cf03a4ab
commit
200cbaec68
@ -126,6 +126,7 @@ func SendServerMsg(m *msg.Msg, serverId int) error {
|
||||
}
|
||||
|
||||
func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) {
|
||||
m.UniKey = GoUtil.UniKey(fmt.Sprintf("%v,Cluster Msg", m))
|
||||
if v, ok := serverAgent.Load(serverId); ok {
|
||||
data, err := GoUtil.GobMarshal(m)
|
||||
if err != nil {
|
||||
@ -134,7 +135,6 @@ func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) {
|
||||
}
|
||||
v.(network.Agent).WriteMsg(data)
|
||||
}
|
||||
m.UniKey = GoUtil.UniKey("clusterGlobal")
|
||||
newChan := make(chan *msg.Msg, 1)
|
||||
registerChanel(m.UniKey, newChan)
|
||||
timeout := time.After(15 * time.Second)
|
||||
|
||||
@ -47,6 +47,7 @@ var Server struct {
|
||||
|
||||
ListenAddr string
|
||||
CenterAddr string
|
||||
CenterNode int
|
||||
|
||||
RemoteAddr string
|
||||
GameConfPath string
|
||||
|
||||
@ -25,6 +25,10 @@
|
||||
"ServerCenter" : 1,
|
||||
"GameConfPath": "D:/Github/pet_home_server/src/server/gamedata/config/",
|
||||
|
||||
"ListenAddr":":9001",
|
||||
"CenterAddr": "pethome.bywaystudios.com:9000",
|
||||
"RemoteAddr":"host.docker.internal:9001",
|
||||
|
||||
"RedisAddr":"127.0.0.1",
|
||||
"RedisPort" :"6379",
|
||||
"RedisPwd" :"",
|
||||
@ -35,7 +39,6 @@
|
||||
"RedisConnType":"Direct",
|
||||
|
||||
"GoogleVerify":false,
|
||||
"RemoteAddr":"host.docker.internal:9001",
|
||||
"Partition":3,
|
||||
"KafkaHost":"kafka-server",
|
||||
"CountryCode":"004",
|
||||
|
||||
@ -37,4 +37,20 @@ func init() {
|
||||
RegisterClusterHandler(msg.HANDLE_TYPE_REQ_CARD, FriendMgrSend)
|
||||
RegisterClusterHandler(msg.HANDLE_TYPE_AGREE_CARD, FriendMgrSend)
|
||||
RegisterClusterHandler(msg.CLUSTER_FRIEND_SYNC, ClusterFriendSync)
|
||||
RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, champshipInrankHandler)
|
||||
RegisterClusterHandler(msg.HANDLE_TYPE_CHAMPSHIP_RANK_INFO, champshipRankInfoHandler)
|
||||
}
|
||||
|
||||
func champshipInrankHandler(m *msg.Msg) error {
|
||||
G_GameLogicPtr.ChampshipMgrSend(m)
|
||||
return nil
|
||||
}
|
||||
|
||||
func champshipRankInfoHandler(m *msg.Msg) error {
|
||||
data := G_GameLogicPtr.ChampshipMgrCall(m)
|
||||
m.To = m.From
|
||||
m.From = 0
|
||||
m.Extra = data
|
||||
FriendMgrSend(m)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -90,6 +90,8 @@ func (f *FriendMgr) Init() {
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_SET, f.SetVarUserData)
|
||||
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_VAR_EXPIRE_SET, f.SetExpireVarData)
|
||||
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_LOGIN, f.SendMsgToCenter)
|
||||
}
|
||||
|
||||
func (f *FriendMgr) getData() *FirendData {
|
||||
@ -252,6 +254,15 @@ func ClusterFriendSync(m *msg.Msg) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 异步发送消息给中心服
|
||||
func (f *FriendMgr) SendMsgToCenter(m *msg.Msg) (interface{}, error) {
|
||||
return nil, mergeCluster.SendServerMsg(m, conf.Server.CenterNode)
|
||||
}
|
||||
|
||||
func (f *FriendMgr) CallMsgToCenter(m *msg.Msg) (interface{}, error) {
|
||||
return mergeCluster.CallServerMsg(m, conf.Server.CenterNode)
|
||||
}
|
||||
|
||||
func FriendMgrCall(m *msg.Msg) interface{} {
|
||||
ToServer := GoUtil.GetServerIdByUid(m.To)
|
||||
if ToServer != conf.Server.ServerID {
|
||||
|
||||
@ -107,6 +107,10 @@ const (
|
||||
|
||||
HANDLE_TYPE_FRIEND_GREETING_REPLY // 好友问候回复
|
||||
HANDLE_TYPE_FRIEND_SPONSOER // 好友赞助体力
|
||||
|
||||
HANDLE_TYPE_CHAMPSHIP_LOGIN // 锦标赛登录
|
||||
HANDLE_TYPE_CHAMPSHIP_RANK_INFO // 锦标赛排名信息
|
||||
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
Loading…
Reference in New Issue
Block a user