2012-11-27 5 views
0

여러 uers와 요청을 처리해야하는 Java 애플리케이션을 개발 중입니다. (등록), 업데이트 (아바타 변경 ...) 또는 자신의 계정에 정보를 추가 할 수 있습니다 (예 : 발사 설명).Java에서 데이터베이스 관리 프로그램 (neo4j) 구현을위한 지침

이 경우 나는 neo4j를 사용하기로 결정했습니다. 그 이유는 관계 성 (응용 프로그램이 "소셜")이 좋기 때문입니다.

나는 네가 해답을 알고 있는지, neo4j에서 멀티 쓰레딩을 구현하는 방법인지 알고 싶다. 여기

내 소프트웨어 아키텍처에 대한 약간의 정보입니다 :

내가 neo4j 서버, 다음, 내 javaApplication에 내가 나 서버와 통신 할 수 있도록 neo4j 항아리를 가지고 있습니다. 응용 프로그램은 여러 레이어로 나뉘며 각 레이어 중 하나는 다음 레이어에 포함 된 라이브러리입니다. 즉, 레이어를 다시 작성하고 동일한 인터페이스를 노출해야하며 다른 레이어는 영향을받지 않습니다.

문제는 MySql을 사용하여 상위 계층에서 하나를 얻은 곳의 연결 풀이 있다는 것입니다. 모든 것이 숨겨져 있고 JDBC가 동시성을 처리했습니다.

그러나 neo4j에서는 병렬 처리를 구현하는 방법을 이해하지 못합니다 : 자동으로 neo4j에서 처리됩니까? 연결 풀입니까?

"연결"을 만들어야하며 모든 요청에 ​​대해 동일한 것을 공유해야한다고 생각합니다. 맞아?

모범 사례이 있습니까?

+0

질문을 단락으로 나누는 것이 좋습니다 (단락 사이에 빈 줄을 추가하십시오). 그러면 더 쉽게 읽을 수 있습니다. 또한 나쁜 영어에 대해 사과하는 것보다 맞춤법 검사기를 사용하는 것이 좋습니다 (적어도 내 WWW 브라우저는 요즘과 같이 통합되어 있습니다 ...). 그리고 명백한 맞춤법 오류를 수정하십시오. 누군가 귀찮아 ... – hyde

+0

맞아, 고마워요 – litiales

+0

이 도움이 될 수 있습니다 : http://stackoverflow.com/questions/9934463/neo4j-configuration http://docs.neo4j.org/chunked/milestone/transactions- deadlocks.html – ulkas

답변

1

Java 응용 프로그램 및 포함 모드에서 Neo4j는 응용 프로그램 프로세스의 일부로 실행됩니다. 스레드를 처리하고 탐색을 위해 여러 스레드를 생성하고 Neo4j를 싱글 톤으로 처리 할 수 ​​있습니다. 자동 스레드 처리를 원한다면 다중 스레드를 포함하여 웹 서버 기능을 제공하는 Neo4j 서버 (REST 이상)를 사용할 수 있습니다.

+0

그래서 임베디드 그 래프의 정적 인스턴스를 가진 클래스를 생성하여 요청을 수락 할 때 생성되는 모든 스레드와 공유하십시오. 권리? 그리고이 객체는 이미 스레드 세이프입니다. – litiales

+0

예 스레드 세이프입니다. 'GraphDatabaseService'를 올바르게 종료했는지 확인하십시오. https://github.com/neo4j/community/blob/1.8/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java –

관련 문제