Nebula v2.0ga
Java client是2.0.0
- 部署方式分布式 :
测试执行的时候,发现使用main函数。主程序是不退出的,但是执行junit 是正常退出的(因为junit不支持多线程),估计是对scanVertex执行的结果ScanVertexResultIterator进行迭代遍历的时候,存在异步多线程执行没有退出
代码 / 终端输出 / 日志…
import com.vesoft.nebula.client.graph.data.HostAddress;
import com.vesoft.nebula.client.storage.StorageClient;
import com.vesoft.nebula.client.storage.data.VertexRow;
import com.vesoft.nebula.client.storage.data.VertexTableRow;
import com.vesoft.nebula.client.storage.scan.ScanVertexResult;
import com.vesoft.nebula.client.storage.scan.ScanVertexResultIterator;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
@Slf4j
public class StorageClientTest {
public static void main(String[] args) {
testScanVertexWithNoCol();
log.info("end main");
}
@Test
public void test() {
testScanVertexWithNoCol();
log.info("end junit test");
}
public static void testScanVertexWithNoCol() {
List<HostAddress> addressList = Arrays.asList(
new HostAddress("10.206.56.99", 45500)
, new HostAddress("10.206.56.100", 45500)
, new HostAddress("10.206.56.101", 45500));
StorageClient client = new StorageClient(addressList);
try {
client.connect();
} catch (Exception e) {
}
ScanVertexResultIterator resultIterator = client.scanVertex(
"testStorage",
"person");
while (resultIterator.hasNext()) {
ScanVertexResult result = null;
try {
result = resultIterator.next();
} catch (Exception e) {
e.printStackTrace();
}
List<VertexRow> rows = result.getVertices();
for (VertexRow row : rows) {
log.info("" + row.getVid());
}
List<VertexTableRow> tableRows = result.getVertexTableRows();
for (VertexTableRow tableRow : tableRows) {
log.info("" + tableRow.getVid());
}
}
log.info("end");
}
}