2017-04-07 111 views
1

我有一个在复制模式下运行的点火服务器,以及启用了附近缓存的同一节点上的许多客户端。现在,当我运行临近缓存的客户端并且没有接近缓存时,我没有发现明显的性能差异。Ignite C++客户端模式,靠近缓存

我对接近缓存的理解是,经常使用的键和值将存储在客户端本身,因此不会有实际的Get()调用服务器。如果我错了,请纠正我。

有人可以在缓存配置xml附近共享工作。

SERVER CONFIG: 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:util="http://www.springframework.org/schema/util" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util.xsd"> 
     <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> 

      <property name="cacheConfiguration"> 
       <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
        <property name="cacheMode" value="LOCAL" /> 
           <!-- Enable near cache to cache recently accessed data. --> 

           <!-- <property name="nearConfiguration"> 

            <bean class="org.apache.ignite.configuration.NearCacheConfiguration"/> 

           </property> --> 
        <property name="nearConfiguration"> 
        <bean class="org.apache.ignite.configuration.NearCacheConfiguration"> 
        </bean> 
        </property> 

       </bean> 
      </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. 
        --> 
        <!-- 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> 
           <!-- In distributed environment, replace with actual host IP address. --> 
           <!-- <value>127.0.0.1:48550..48551</value> --> 
           <value>XXX.ZZZ.yyy.36:47500..47501</value> 
          </list> 
         </property> 
        </bean> 
       </property> 
      </bean> 
     </property> 

    </bean> 
</beans> 


CLIENT CONFIG: 

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:util="http://www.springframework.org/schema/util" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util.xsd"> 
     <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> 

      <property name="cacheConfiguration"> 
       <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
        <property name="cacheMode" value="LOCAL" /> 
           <!-- Enable near cache to cache recently accessed data. --> 

           <!-- <property name="nearConfiguration"> 

            <bean class="org.apache.ignite.configuration.NearCacheConfiguration"/> 

           </property> --> 
        <property name="nearConfiguration"> 
        <bean class="org.apache.ignite.configuration.NearCacheConfiguration"> 
        </bean> 
        </property> 

       </bean> 
      </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. 
        --> 
        <!-- 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> 
           <!-- In distributed environment, replace with actual host IP address. --> 
           <!-- <value>127.0.0.1:48550..48551</value> --> 
           <value>XXX.ZZZ.yyy.38:47500..47501</value> 
          </list> 
         </property> 
        </bean> 
       </property> 
      </bean> 
     </property> 


    </bean> 
</beans> 

回答

1

是,近缓存提高了缓存的性能常常使用本地节点上的条目,但如果你运行单机或JVM上的所有测试中,它没有任何意义。靠近缓存允许不在远程节点上访问数据,但在测试中,所有内容都已在本地运行。

而且近缓存对REPLICATEDPARTITIONED高速缓存,其中备份的数量等于或大于数据节点的数量越大没有意义的服务器节点,因为设置的所有数据已经​​可以为每个节点本地。

因此,为了提高性能,当服务器节点在远程计算机上工作时,需要将客户机节点配置为使用Near缓存。在测量之前,不要忘记在高速缓存附近进行热身。

这里是设置近缓存XML片段:

... 
<bean class="org.apache.ignite.configuration.CacheConfiguration"> 

     <!-- Your other cache config --> 

     <property name="nearConfiguration"> 
      <bean class="org.apache.ignite.configuration.NearCacheConfiguration"/> 
     </property> 
</bean> 
... 
+0

我已经加入了使用的配置,但使用上面的配置,我可以看到近缓存从ignitevisor有效OFF。 – Immortalisai

+0

我想你是看错了节点。它可能被禁用服务器,但为客户端启用。 –

+0

嗨,我可以看到,我没有单独为每个缓存添加近缓存配置。现在无法看到启用的附近缓存。 – Immortalisai