【问题标题】:Ignite C++ client mode, Near cache点燃 C++ 客户端模式,近缓存
【发布时间】:2017-04-07 06:57:40
【问题描述】:

我有一个以复制模式运行的 ignite 服务器,并且同一节点上的许多客户端都启用了近缓存。现在,当我使用近缓存和不近缓存运行客户端时,我没有发现显着的性能差异。

我对近缓存的理解是,经常使用的键和值将存储在客户端本身,因此不会对服务器进行实际的 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>

【问题讨论】:

    标签: ignite


    【解决方案1】:

    是的,近缓存通过在本地缓存节点上经常使用的条目来提高性能,但是如果您在单机或 JVM 上运行所有测试就没有意义。近缓存允许不在远程节点上获取数据,但在您的测试中,一切都已经在本地运行。

    对于REPLICATEDPARTITIONED 缓存上的服务器节点,Near 缓存也没有意义,其中备份的数量等于或大于数据节点的数量,因为所有数据集都已在本地可供每个节点使用。

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

    这里是用于设置近缓存的 XML sn-p:

    ...
    <bean class="org.apache.ignite.configuration.CacheConfiguration">
    
           <!-- Your other cache config -->
    
           <property name="nearConfiguration">
                 <bean class="org.apache.ignite.configuration.NearCacheConfiguration"/>
           </property>
    </bean>
    ...
    

    【讨论】:

    • 我已经添加了使用的配置,但是使用上面的配置我可以看到近缓存从 ignitevisor 启用了。
    • 我想您正在查看错误的节点。它可能对服务器禁用,但对客户端启用。
    • 您好,谢谢,我可以看到我没有分别为每个缓存添加近缓存配置。现在我可以看到启用了近缓存..
    猜你喜欢
    • 1970-01-01
    • 2017-11-17
    • 2023-04-09
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多