2016-01-17 1 views
1

Я пытаюсь получить все имена бункеров для некоторых aerospike установить я в состоянии сделать это в командной строке бушель выполнениякак получить все ящики имен aerospike данных набора

asinfo -v 'bins/<my_set_name>' 

Я ищу для кода Java/Scala, который может сделать то же самое. Используемая версия аэрокосмического клиента «3.1.6»

ответ

2

Вам нужно будет отсканировать набор и построить список названий ящиков для набора.

Также предоставленная вами информация не будет работать с заданным именем, для этого потребуется имя пространства имен. См. bins в ссылке на команду.

Для выполнения команды бункеров в вашем клиенте должен быть API-интерфейс info, который будет использовать тот же ввод, что и утилита командной строки.

Java client info API

1

правильный путь:

val policy = new ClientPolicy() 
val client = new AerospikeClient(policy, initialHost, port) 
val node = client.getNodes 
val conn=node(0).getConnection(1000) 
val info= new Info(conn,"bins/users") 
val buff:Array[Byte]=info.getBuffer 
val buffStr=new String(buff) 

buffStr содержит список закромов в пространстве имен пользователей в Aersospike как строка

+0

Это решение работает для пространства имен, но не набор, как оп запрошенных. +1 для примера пространства имен, не могли бы вы прояснить это в своем ответе? Также следует отметить, что список bin для пространства имен растет монотонно и сбрасывается только перезагрузкой сервера ... так что эта команда также будет возвращать ящики, которые могут больше не использоваться. Хотя это дорого, пространство имен или заданное сканирование является наиболее точным методом для извлечения названий бинов. – kporter