2016-11-02 6 views
2

Я начинаю в Ignite и пытаюсь использовать Ignite для установки кэша в памяти. Я сделал некоторую базовую конфигурацию и запустил основанную на Ignite совместимость работы на одном узле. Теперь я планирую протестировать производительность на 2 кластера узлов и настройка конфигурации воспламеняют согласно ниже:Нужна помощь при запуске Ignite cache в кластере с двумя узлами

<?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 запускаются в автономном режиме только с одним клиентом. Мне нужно, чтобы оба они использовали общий экземпляр. Пожалуйста, предложите возможные проблемы при развертывании/выполнении.

ответ

2

Попробуйте удалить <value>127.0.0.1:47500..47509</value> с помощью функции обнаружения. Это не делает много для распределенного кластера.

+0

Уже сделал это, а также изменил clientMode, чтобы сделать его ложным, приложение на коробке 1 подключается к серверу с воспламенением, но не в блоке 2, необходимо ли иметь двухстороннюю связь/ssh-соединение из Вставки 2 в ящик 1 , чтобы сформировать кластер? –

+0

Да, между всеми узлами, включая клиенты или серверы, требуется двусторонняя связь. Если некоторые узлы находятся за NAT, вы можете использовать 'AddressResolver'. –

1

Эта конфигурация находится в <property name="clientMode" value="true"/>. У вас должен быть хотя бы один узел, установленный на <property name="clientMode" value="false"/>, иначе ваши клиенты не будут иметь серверных узлов для подключения.