나는 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을 사용하는 어떤 방법이 있어야한다.
<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 스프링 구성의 변화 이하로 구현하여
당신은 이미 서버 설정에서 가지고있는 것과 같은 코디네이터를 사용하면됩니다. 스프링 애플리케이션은 아마도 4 번째 데이터베이스 서버 일 것이므로 ** 4 ** **의 서버 ID를 제공해야합니다. 봄 구성 인스턴스는 클라이언트가 아닌 HA 클러스터의 전체 구성원입니다. –
@MichaelHunger'192.168.1.10 : 6001'은 스프링 응용 프로그램을 실행하는 인스턴스입니다. 이 인스턴스에서 서버 ID는 1입니다. 나머지 인스턴스의 ID는 2와 3입니다. 그렇습니다. 스프링 구성 인스턴스가 HA 클러스터의 전체 구성원입니다. 그러나 여전히 달릴 수는 없습니다. – agpt
@MichaelHunger 당신이 plz 제안 할 수 있습니다, 어떻게 내가 위에서 언급 한 구성에 대한 프론트 엔드 URL을 사용할 수 있습니다. 예 : Neo4j REST 인터페이스에 192.168.1.46:81/db/data 대상. HighlyAvailableGraphDatabase에 이것을 사용할 수 있습니까? – agpt