用QT调用nacos-sdk-cpp提供的第三方库,两个工程,就使用给的示例代码,第一个注册,第二个获取实例,不管哪个先启动都没问题,后面启动的那个就会异常退出,求解。
这是获取的
#include <iostream>
#include <list>
#include "Nacos.h"
using namespace std;
using namespace nacos;
int main() {
Properties configProps;
configProps[PropertyKeyConst::SERVER_ADDR] = "127.0.0.1";
INacosServiceFactory *factory = NacosFactoryFactory::getNacosFactory(configProps);
ResourceGuard <INacosServiceFactory> _guardFactory(factory);
NamingService *namingSvc = factory->CreateNamingService();
ResourceGuard <NamingService> _guardService(namingSvc);
while (1) {
list <Instance> instances = namingSvc->getAllInstances("TestNamingService1");
cout << "getAllInstances from server:" << endl;
for (list<Instance>::iterator it = instances.begin();
it != instances.end(); it++) {
cout << "Instance:" << it->toString() << endl;
}
sleep(10);
}
return 0;
}
//注册
Properties configProps;
configProps[PropertyKeyConst::SERVER_ADDR] = "127.0.0.1:8848";
INacosServiceFactory *factory = NacosFactoryFactory::getNacosFactory(configProps);
ResourceGuard <INacosServiceFactory> _guardFactory(factory);
NamingService *namingSvc = factory->CreateNamingService();
ResourceGuard <NamingService> _serviceFactory(namingSvc);
Instance instance;
instance.clusterName = "nocos-test";
instance.ip = "127.0.0.10";
instance.port = 12333;
instance.instanceId = "100";
instance.ephemeral = true;
instance.groupName="test";
try {
NacosString ip=CtrmCommom::Instance()->m_localIp.toStdString();
namingSvc->registerInstance("test",instance);
}
catch (NacosException &e) {
qDebug() << "encounter exception while registering service instance, raison:" << e.what() << endl;
}