Для игры MORPG hack'n'slash я в настоящее время с помощью Neo4j с рисунком, как это:Лучшее решение для нескольких запросов в течение ограниченного времени
У меня есть класс разъем Neo4j, создавая свою связь и реализующего Singleton и этот экземпляр используется всеми классами xxxMapper, вызывая Neo4jConnetor.getInstance(). query (String query), который возвращает итератор queryresult.
Atm Я задаю себе вопрос, игра будет иметь тонну запросов в секунду (например, 5 на игрока в секунду). Поэтому я не знаю, с точки зрения perfs, какой шаблон использовать, если я должен продолжать использовать мою систему Singleton или использовать другую, например, пул Neo4jConnector или что-то еще, чего я еще не знаю.
Вот класс разъем:
public class Neo4jConnector{
private String urlRest;
private String url = "http://localhost:7474";
protected QueryEngine<?> engine;
protected static Neo4jConnector INSTANCE = new Neo4jConnector();
private Neo4jConnector(){
urlRest = url+"/db/data";
final RestAPI graphDb = new RestAPIFacade(urlRest);
engine = new RestCypherQueryEngine(graphDb);
}
public static Neo4jConnector getInstance(){
if (INSTANCE == null)
{
INSTANCE = new Neo4jConnector();
}
return INSTANCE;
}
@SuppressWarnings("unchecked")
public Iterator<Map<String, Object>> query(String query){
QueryResult<Map<String, Object>> row = (QueryResult<Map<String, Object>>) engine.query(query, Collections.EMPTY_MAP);
return row.iterator();
}
}
и пример вызова этого класса:
Iterator<Map<String, Object>> iterator = Neo4jConnector.getInstance().query("optional Match(u:User{username:'"+username+"'}) return u.password as password, u.id as id");
Есть ли у них какие-либо руководства по созданию надежного соединителя с JDBC и Neo4J. Кроме того, я использую необязательное совпадение, потому что я хочу получить null, если это ничего не возвращает – Supamiu