2013-08-09 2 views
1

나는 Ha와 3 개의 다른 기계에 Neo4j Enterprise Edition (v1.8.2)의 3 가지 인스턴스를 클러스터했으며 현재 (Ha 프론트 엔드 URL을 통해 액세스 할 때) 현재 잘 작동하고 있습니다.
하 프론트 엔드 URL을 사용하기 위해 내 Spring 구성 (applicationContext.xml)을 어떻게 구성 할 수 있는지 알고 싶었습니다.이 템플릿은 백엔드에서 neo4j 서버의 인스턴스를 3 개 대상으로합니다.
나는이 link을 조사했습니다. 라인 아래에 설명하는 : 나는 정확히 못하고 있어요, 어떻게 그리고 왜 내가 SERVER_ID에게 이미 모든 neo4j 서버 구성에 대해 수행 한 여기코디네이터을 다시 구성해야합니다Neo4j 하 클러스터에서 Spring을 구성하는 방법은 무엇입니까?

<bean id="haDatabase" class="org.neo4j.kernel.HighlyAvailableGraphDatabase" destroy-method="shutdown">
<constructor-arg index="0" value="target/config-test"/>
<constructor-arg index="1">
<map>
<entry key="ha.server_id" value="1"/>
<entry key="ha.server" value="192.168.1.10:6001"/>
<entry key="ha.coordinators" value="192.168.1.10:2181,192.168.1.9:2182,192.168.1.8:2183"/>
</map>
</constructor-arg>
</bean>
<neo4j:config graphDatabaseService="haDatabase"/>

.

구성 위 적용한 후 업데이트 # 1

을, 그리고 하 프록시와 함께 실행중인 모든 세 개의 인스턴스를 유지했다. 나는 ... 이클립스에서 로그 아래 얻고 내 응용 프로그램을 디버깅하는 동안 이상이 교수형을받을

14:29:13.220 [pool-2-thread-1] DEBUG neo4j - Read HA server:192.168.1.10:6001 (for machineID 1) from zoo keeper
14:29:13.227 [pool-2-thread-1] DEBUG neo4j - Read HA server:192.168.1.8:6003 (for machineID 3) from zoo keeper 14:29:13.232 [pool-2-thread-1] DEBUG neo4j - Read HA server:192.168.1.9:6002 (for machineID 2) from zoo keeper 14:29:13.239 [pool-2-thread-1] DEBUG neo4j - Writing at flush-requested: -6 14:29:13.268 [pool-2-thread-1] DEBUG neo4j - getMaster 3 based on [MachineInfo[ID:1, sequence:29, last tx:97, server:(192.168.1.10, 6001), master for last tx:3], MachineInfo[ID:2, sequence:30, last tx:97, server:(192.168.1.9, 6002), master for last tx:3], MachineInfo[ID:3, sequence:31, last tx:97, server:(192.168.1.8, 6003), master for last tx:3]] 14:29:13.333 [pool-13-thread-1] DEBUG neo4j - [email protected], Fri Aug 09 14:29:13 IST 2013 Got event: WatchedEvent state:SyncConnected type:None path:null (path=null)

업데이트 # 2
제기 또 다른 쿼리가, 내가 어디에서나 직접 Haproxy 프런트 엔드 URL을 사용하고 있지 않다 나의 봄 환경. 그러면 내 봄 어플에서 Haproxy가하는 역할은 무엇입니까? 나는 나의 친구 중 하나와 이것을 토론했고, 그의 제안에 따라 Ha 프록시 URL을 사용하는 어떤 방법이 있어야한다.

,하지만 나는 그것의 성능은 마크 최대 개까지 아니었다 느낀 ( http://192.168.1.46:81 내 haproxy 프론트 엔드 나뿐만 아니라 경우 위의 시도 3
<bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
<constructor-arg index="0" value="http://192.168.1.46:81/db/data" />
</bean>

업데이트 #입니다

neo4j 서버의 3 가지 인스턴스에 대한 URL 타겟팅).

나는 단서가 어디에 있습니까? 그냥 내 applicationContext.xml 스프링 구성의 변화 이하로 구현하여

+0

당신은 이미 서버 설정에서 가지고있는 것과 같은 코디네이터를 사용하면됩니다. 스프링 애플리케이션은 아마도 4 번째 데이터베이스 서버 일 것이므로 ** 4 ** **의 서버 ID를 제공해야합니다. 봄 구성 인스턴스는 클라이언트가 아닌 HA 클러스터의 전체 구성원입니다. –

+0

@MichaelHunger'192.168.1.10 : 6001'은 스프링 응용 프로그램을 실행하는 인스턴스입니다. 이 인스턴스에서 서버 ID는 1입니다. 나머지 인스턴스의 ID는 2와 3입니다. 그렇습니다. 스프링 구성 인스턴스가 HA 클러스터의 전체 구성원입니다. 그러나 여전히 달릴 수는 없습니다. – agpt

+0

@MichaelHunger 당신이 plz 제안 할 수 있습니다, 어떻게 내가 위에서 언급 한 구성에 대한 프론트 엔드 URL을 사용할 수 있습니다. 예 : Neo4j REST 인터페이스에 192.168.1.46:81/db/data 대상. HighlyAvailableGraphDatabase에 이것을 사용할 수 있습니까? – agpt

답변

3

문제가 해결 도와주세요 : 내 이해 당으로
<bean id="graphDatabaseService" class="org.neo4j.kernel.HighlyAvailableGraphDatabase" destroy-method="shutdown">
<constructor-arg index="0" value="/opt/build/mydb/graph.db"/>
<constructor-arg index="1">
<map>
<entry key="ha.server_id" value="1"/>
<entry key="ha.server" value="192.168.1.10:6001"/>
<entry key="ha.coordinators" value="192.168.1.10:2181,192.168.1.9:2182,192.168.1.8:2183"/>
</map>
</constructor-arg>
</bean>
<neo4j:config graphDatabaseService="graphDatabaseService"/>

, 우리는 언급 할 필요가 HA 구성 다음 graph.db의 최소 기본 위치에서 코디네이터 세부 정보.
감사합니다. Michael (link 1link 2)에게 감사드립니다. 고맙게 감사드립니다 :)

관련 문제