1
This commit is contained in:
parent
498863e362
commit
21699e1524
@ -7,7 +7,6 @@
|
|||||||
|
|
||||||
void MSConnMgr::Init()
|
void MSConnMgr::Init()
|
||||||
{
|
{
|
||||||
#if MASTER_MODE
|
|
||||||
auto master_svr_cluster_conf = JsonDataMgr::Instance()->GetMasterServerClusterConf();
|
auto master_svr_cluster_conf = JsonDataMgr::Instance()->GetMasterServerClusterConf();
|
||||||
for (int i = 0; i < master_svr_cluster_conf->Size(); ++i) {
|
for (int i = 0; i < master_svr_cluster_conf->Size(); ++i) {
|
||||||
auto master_svr_conf = master_svr_cluster_conf->At(i);
|
auto master_svr_conf = master_svr_cluster_conf->At(i);
|
||||||
@ -15,13 +14,12 @@ void MSConnMgr::Init()
|
|||||||
std::string remote_ip = master_svr_conf->At("ip")->AsXValue();
|
std::string remote_ip = master_svr_conf->At("ip")->AsXValue();
|
||||||
int remote_port = master_svr_conf->At("port")->AsXValue();
|
int remote_port = master_svr_conf->At("port")->AsXValue();
|
||||||
{
|
{
|
||||||
MasterSvr* conn = new MasterSvr();
|
MSConn* conn = new MSConn();
|
||||||
conn->Init(instance_id, remote_ip, remote_port);
|
conn->Init(instance_id, remote_ip, remote_port);
|
||||||
mastersvr_hash_[conn->instance_id] = conn;
|
|
||||||
conn->Open();
|
conn->Open();
|
||||||
|
id_hash_[conn->instance_id] = conn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MSConnMgr::UnInit()
|
void MSConnMgr::UnInit()
|
||||||
@ -32,34 +30,8 @@ void MSConnMgr::UnInit()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MSConn* MSConnMgr::GetConnByKey(const std::string& key)
|
|
||||||
{
|
|
||||||
auto itr = key_hash_.find(key);
|
|
||||||
return itr != key_hash_.end() ? itr->second : nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
MSConn* MSConnMgr::GetConnById(int instance_id)
|
MSConn* MSConnMgr::GetConnById(int instance_id)
|
||||||
{
|
{
|
||||||
auto itr = id_hash_.find(instance_id);
|
auto itr = id_hash_.find(instance_id);
|
||||||
return itr != id_hash_.end() ? itr->second : nullptr;
|
return itr != id_hash_.end() ? itr->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
MSConn* MSConnMgr::RecreateMSConn(const std::string& host, int port)
|
|
||||||
{
|
|
||||||
std::string key = host + ":" + a8::XValue(port).GetString();
|
|
||||||
MSConn* conn = GetConnByKey(key);
|
|
||||||
if (conn) {
|
|
||||||
return conn;
|
|
||||||
}
|
|
||||||
while (GetConnById(++curr_id_)) {};
|
|
||||||
int instance_id = curr_id_;
|
|
||||||
std::string remote_ip = host;
|
|
||||||
int remote_port = port;
|
|
||||||
|
|
||||||
conn = new MSConn();
|
|
||||||
conn->Init(instance_id, remote_ip, remote_port);
|
|
||||||
id_hash_[conn->instance_id] = conn;
|
|
||||||
key_hash_[key] = conn;
|
|
||||||
conn->Open();
|
|
||||||
return conn;
|
|
||||||
}
|
|
||||||
|
@ -12,12 +12,8 @@ class MSConnMgr : public a8::Singleton<MSConnMgr>
|
|||||||
void Init();
|
void Init();
|
||||||
void UnInit();
|
void UnInit();
|
||||||
|
|
||||||
MSConn* GetConnByKey(const std::string& key);
|
|
||||||
MSConn* GetConnById(int instance_id);
|
MSConn* GetConnById(int instance_id);
|
||||||
MSConn* RecreateMSConn(const std::string& host, int port);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned short curr_id_ = 1000;
|
|
||||||
std::map<std::string, MSConn*> key_hash_;
|
|
||||||
std::map<int, MSConn*> id_hash_;
|
std::map<int, MSConn*> id_hash_;
|
||||||
};
|
};
|
||||||
|
@ -21,18 +21,17 @@ void JsonDataMgr::Init()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string wsproxyserver_cluster_json_file;
|
std::string imserver_cluster_json_file;
|
||||||
std::string masterserver_cluster_json_file;
|
std::string masterserver_cluster_json_file;
|
||||||
std::string routing_tables_json_file;
|
imserver_cluster_json_file = a8::Format("%s/friend.imserver.cluster.json",
|
||||||
wsproxyserver_cluster_json_file = a8::Format("%s/friend.imserver.cluster.json",
|
{
|
||||||
{
|
work_path_,
|
||||||
work_path_,
|
});
|
||||||
});
|
|
||||||
masterserver_cluster_json_file = a8::Format("%s/friend.masterserver.cluster.json",
|
masterserver_cluster_json_file = a8::Format("%s/friend.masterserver.cluster.json",
|
||||||
{
|
{
|
||||||
work_path_,
|
work_path_,
|
||||||
});
|
});
|
||||||
wsproxyserver_cluster_json_.ReadFromFile(wsproxyserver_cluster_json_file);
|
imserver_cluster_json_.ReadFromFile(imserver_cluster_json_file);
|
||||||
masterserver_cluster_json_.ReadFromFile(masterserver_cluster_json_file);
|
masterserver_cluster_json_.ReadFromFile(masterserver_cluster_json_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,10 +41,11 @@ void JsonDataMgr::UnInit()
|
|||||||
|
|
||||||
std::shared_ptr<a8::XObject> JsonDataMgr::GetConf()
|
std::shared_ptr<a8::XObject> JsonDataMgr::GetConf()
|
||||||
{
|
{
|
||||||
if (App::Instance()->instance_id < 1 || App::Instance()->instance_id > wsproxyserver_cluster_json_.Size()) {
|
if (App::Instance()->instance_id < 1 ||
|
||||||
|
App::Instance()->instance_id > imserver_cluster_json_.Size()) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
return wsproxyserver_cluster_json_[App::Instance()->instance_id - 1];
|
return imserver_cluster_json_[App::Instance()->instance_id - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<a8::XObject> JsonDataMgr::GetMasterServerClusterConf()
|
std::shared_ptr<a8::XObject> JsonDataMgr::GetMasterServerClusterConf()
|
||||||
|
@ -15,6 +15,6 @@ class JsonDataMgr : public a8::Singleton<JsonDataMgr>
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::string work_path_ = "../config";
|
std::string work_path_ = "../config";
|
||||||
a8::XObject wsproxyserver_cluster_json_;
|
a8::XObject imserver_cluster_json_;
|
||||||
a8::XObject masterserver_cluster_json_;
|
a8::XObject masterserver_cluster_json_;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user