Skip to content

Commit

Permalink
feat: tarsnode auto set locator when tarsregistry locator changed
Browse files Browse the repository at this point in the history
  • Loading branch information
ruanshudong committed Nov 6, 2023
1 parent c4aba74 commit e4fcf5b
Showing 1 changed file with 3 additions and 106 deletions.
109 changes: 3 additions & 106 deletions NodeServer/NodeServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -283,111 +283,6 @@ string tostr(const set<string>& setStr)
return str;
}

//string NodeServer::host2Ip(const string& host)
//{
// struct in_addr stSinAddr;
// TC_Socket::parseAddr(host, stSinAddr);
//
// char ip[INET_ADDRSTRLEN] = "\0";
// inet_ntop(AF_INET, &stSinAddr, ip, INET_ADDRSTRLEN);
//
// return ip;
//}
//
//bool NodeServer::isValid(const string& ip)
//{
// static time_t g_tTime = 0;
// static set<string> g_ipSet;
//
// time_t tNow = TNOW;
//
// // TLOG_DEBUG("NodeServer::isValid ip:" << ip << " -> dst:" << dst << endl);
//
// static TC_ThreadLock g_tMutex;
//
// TC_ThreadLock::Lock lock(g_tMutex);
// if (tNow - g_tTime > 60)
// {
// string objs = g_pconf->get("/tars/node<cmd_white_list>", "tars.tarsregistry.AdminRegObj:tars.tarsAdminRegistry.AdminRegObj");
// string ips = g_pconf->get("/tars/node<cmd_white_list_ip>", "");
//
// if(!ips.empty())
// {
// ips += ":";
// }
// ips += string("127.0.0.1:") + host2Ip(ServerConfig::LocalIp);
//
// TLOG_DEBUG("NodeServer::isValid objs:" << objs << "|ips:" << ips << endl);
//
// vector<string> vObj = TC_Common::sepstr<string>(objs, ":");
//
// vector<string> vIp = TC_Common::sepstr<string>(ips, ":");
// for (size_t i = 0; i < vIp.size(); i++)
// {
// g_ipSet.insert(vIp[i]);
// LOG->debug() << ips << ", g_ipSet insert ip:" << vIp[i] << endl;
// }
//
// map<string, string> context;
// //获取实际ip, 穿透代理, 给TarsCloud云使用
// context["TARS_REAL"] = "true";
//
// QueryFPrx queryPrx = AdminProxy::getInstance()->getQueryProxy();
//
// for (size_t i = 0; i < vObj.size(); i++)
// {
// set<string> tempSet;
// string obj = vObj[i];
// try
// {
//
// vector<EndpointF> vActiveEp, vInactiveEp;
// queryPrx->findObjectById4All(obj, vActiveEp, vInactiveEp, context);
//
// for (unsigned i = 0; i < vActiveEp.size(); i++)
// {
// tempSet.insert(host2Ip(vActiveEp[i].host));
// }
//
// for (unsigned i = 0; i < vInactiveEp.size(); i++)
// {
// tempSet.insert(host2Ip(vInactiveEp[i].host));
// }
//
// TLOG_DEBUG("NodeServer::isValid "<< obj << "|tempSet.size():" << tempSet.size() << "|" << tostr(tempSet) << endl);
// }
// catch (exception& e)
// {
// TLOG_ERROR("NodeServer::isValid catch error: " << e.what() << endl);
// }
// catch (...)
// {
// TLOG_ERROR("NodeServer::isValid catch error: " << endl);
// }
//
// if (tempSet.size() > 0)
// {
// g_ipSet.insert(tempSet.begin(), tempSet.end());
// }
// }
//
// TLOG_DEBUG("NodeServer::isValid g_ipSet.size():" << g_ipSet.size() << "|" << tostr(g_ipSet) << endl);
// g_tTime = tNow;
// }
//
// if (g_ipSet.count(ip) > 0)
// {
// return true;
// }
//
// if (g_sNodeIp == ip || ServerConfig::LocalIp == ip)
// {
// return true;
// }
//
// return false;
//}

void NodeServer::reportServer(const string& sServerId, const string &sSet, const string &sNodeName, const string& sResult)
{
try
Expand Down Expand Up @@ -530,9 +425,11 @@ int NodeServer::onUpdateConfig(const string &nodeId, const string &sConfigFile,
}

string nNewLocator = getQueryEndpoint();
if(!nNewLocator.empty())
if(!nNewLocator.empty() && nNewLocator != sLocator)
{
sLocator = nNewLocator;
CommunicatorFactory::getInstance()->getCommunicator()->setProperty("locator", sLocator);
CommunicatorFactory::getInstance()->getCommunicator()->reloadLocator();
}

sTemplate = TC_Common::replace(sTemplate, "${enableset}", config.get("/tars/application/server<enableset>", "n"));
Expand Down

0 comments on commit e4fcf5b

Please sign in to comment.