2016-11-02 22 views
2

저는 Ignite에서 초보자이며 Ignite를 사용하여 메모리 내장 캐시를 설정하려고합니다. 몇 가지 기본 구성을 수행하고 단일 노드에서 Ignite 기반의 플러그 가능한 지속성 작업을 시작했습니다. 지금, 나는 2 노드 클러스터의 성능을 테스트 할 계획 아래에 따라, 점화 구성을 설정하고 있습니다 :2 노드 클러스터에서 Ignite 캐시를 시작하는 데 도움이 필요합니다.

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd"> 

<bean id="countryCacheStoreFactory" class="javax.cache.configuration.FactoryBuilder" factory-method="factoryOf"> 
<constructor-arg><value>com.xyz.exploreignite.cache.CustomCacheStore</value></constructor-arg> 
</bean> 

<bean id="stateCacheStoreFactory" class="javax.cache.configuration.FactoryBuilder" factory-method="factoryOf"> 
<constructor-arg><value>com.xyz.exploreignite.cache.CustomStateCacheStore</value></constructor-arg> 
</bean> 

<bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> 
    <property name="peerClassLoadingEnabled" value="false"/> 
<property name="clientMode" value="true"/> 
<property name="gridName" value="clusterGrid"/> 
    <property name="cacheConfiguration"> 
     <list> 
      <!-- Partitioned cache example configuration (Atomic mode). --> 
      <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
       <property name="atomicityMode" value="ATOMIC"/> 
       <property name="backups" value="1"/> 
       <property name="name" value="customCountryCache"/> 
       <property name="readThrough" value="true"/> 
       <property name="writeThrough" value="true"/> 
       <property name="cacheMode" value="PARTITIONED"/> 
       <property name="writeBehindEnabled" value="true"/> 
       <property name="copyOnRead" value="true"/> 
       <property name="memoryMode" value="OFFHEAP_TIERED"/> 
       <property name="atomicWriteOrderMode" value="PRIMARY"/> 
       <property name="indexedTypes" > 
     <list> 
      <value>java.lang.Integer</value> 
      <value>com.xyz.exploreignite.pojo.Country</value> 
     </list> 
     </property> 
     <!-- Cache store. --> 
     <property name="cacheStoreFactory" ref="countryCacheStoreFactory"/> 
      </bean> 
    <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
       <property name="atomicityMode" value="ATOMIC"/> 
       <property name="backups" value="1"/> 
       <property name="name" value="customStateCache"/> 
       <property name="readThrough" value="true"/> 
       <property name="writeThrough" value="true"/> 
       <property name="cacheMode" value="PARTITIONED"/> 
       <property name="writeBehindEnabled" value="true"/> 
       <property name="copyOnRead" value="true"/> 
       <property name="memoryMode" value="OFFHEAP_TIERED"/> 
       <property name="atomicWriteOrderMode" value="PRIMARY"/> 
       <property name="indexedTypes" > 
     <list> 
      <value>java.lang.Integer</value> 
      <value>com.xyz.exploreignite.pojo.State</value> 
     </list> 
     </property> 
     <!-- Cache store. --> 
     <property name="cacheStoreFactory" ref="stateCacheStoreFactory"/> 
      </bean> 
     </list> 
    </property> 


    <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. --> 
    <property name="discoverySpi"> 
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> 
      <property name="ipFinder"> 
       <!-- 
        Ignite provides several options for automatic discovery that can be used 
        instead os static IP based discovery. For information on all options refer 
        to our documentation: http://apacheignite.readme.io/docs/cluster-config 
       --> 
       <!-- Uncomment static IP finder to enable static-based discovery of initial nodes. --> 
       <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> 
       <!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">--> 
        <property name="addresses"> 
         <list> 
          <value>127.0.0.1:47500..47509</value> 
          <value>172.26.49.1:47500..47509</value> 
          <!-- In distributed environment, replace with actual host IP address. --> 
          <value>172.26.49.2:47500..47509</value> 
         </list> 
        </property> 
       </bean> 
      </property> 
     </bean> 
    </property> 
</bean> 

을 이제 모두의 "빈/ignite.sh"로 점화 시작하는 동안 표시되는 노드는 서버에 연결하지 못했습니다. 위의 명령과 병행하여 "bin/ignite.sh"만 실행하는 동안 개별 ignite config 인스턴스는 모두 하나의 클라이언트 만있는 독립 실행 형 모드에서 시작됩니다. 둘 다 공유 인스턴스를 활용해야합니다. 배포/실행시 발생할 수있는 문제를 제안하십시오.

답변

2

검색 구성에서 <value>127.0.0.1:47500..47509</value> 줄을 제거하십시오. 분산 클러스터에 대해서는별로 도움이되지 않습니다.

+0

이미 그것을 만들었으며 또한 false로 만들기 위해 clientMode를 변경했습니다. 상자 1의 응용 프로그램은 서버를 점화하도록 연결되지만 상자 2는 상자 2에서 상자 1로 양방향 통신/ssh 연결이 필요합니다. , 클러스터 형성을 위해서? –

+0

예, 클라이언트 또는 서버를 포함한 모든 노드간에 양방향 통신이 필요합니다. 일부 노드가 NAT 뒤에있는 경우,'AddressResolver'를 사용할 수 있습니다. –

1

해당 구성은 <property name="clientMode" value="true"/>입니다. 하나 이상의 노드를 <property name="clientMode" value="false"/>으로 설정해야합니다. 그렇지 않으면 클라이언트에 연결할 서버 노드가 없습니다.