我有一个第三方Mysql表,将由Ignite集群部分缓存。所以在点燃之后,我做了这个conf:
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
<property name="multicastGroup" value="228.10.10.157" />
</bean>
</property>
</bean>
</property>
<property name="clientMode" value="true" />
<property name="cacheConfiguration">
<list>
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="crmdbcache" />
<property name="onheapCacheEnabled" value="true" />
<property name="readThrough" value="true" />
<property name="readFromBackup" value="false" />
<property name="evictionPolicy">
<bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
<property name="maxSize" value="100" />
</bean>
</property>
<property name="indexedTypes">
<list>
<value>java.lang.Long</value>
<value>com.example.demo.UserSegment</value>
</list>
</property>
<property name="cacheStoreFactory">
<bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory">
<property name="dataSource" ref="datasource" />
<property name="dialect">
<bean class="org.apache.ignite.cache.store.jdbc.dialect.MySQLDialect"></bean>
</property>
<property name="parallelLoadCacheMinimumThreshold" value="20"/>
<property name="types">
<list>
<bean class="org.apache.ignite.cache.store.jdbc.JdbcType">
<property name="databaseSchema" value="crm" />
<property name="databaseTable" value="CRM_SEGMENT" />
<property name="cacheName" value="crmdbcache" />
<property name="keyType" value="java.lang.Long" />
<property name="valueType" value="com.example.demo.UserSegment" />
<property name="keyFields">
<list>
<bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
<constructor-arg index="0" value="-5" />
<constructor-arg index="1" value="USER_ID" />
<constructor-arg index="2" value="java.lang.Long" />
<constructor-arg index="3" value="userId" />
</bean>
</list>
</property>
<property name="valueFields">
<list>
<bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
<constructor-arg index="0" value="-5" />
<constructor-arg index="1" value="ID" />
<constructor-arg index="2" value="java.lang.Long" />
<constructor-arg index="3" value="id" />
</bean>
<bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
<constructor-arg index="0" value="-5" />
<constructor-arg index="1" value="USER_ID" />
<constructor-arg index="2" value="java.lang.Long" />
<constructor-arg index="3" value="userId" />
</bean>
<bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
<constructor-arg index="0" value="-5" />
<constructor-arg index="1" value="TYPE_ID" />
<constructor-arg index="2" value="java.lang.Long" />
<constructor-arg index="3" value="type" />
</bean>
<bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
<constructor-arg index="0" value="12" />
<constructor-arg index="1" value="TAG" />
<constructor-arg index="2" value="java.lang.String" />
<constructor-arg index="3" value="tag" />
</bean>
</list>
</property>
</bean>
</list>
</property>
</bean>
</property>
</bean>
</list>
</property>
</bean>
所以,我也在检查点火器上的负载。但看起来,它很慢。我也运行了ignite.sh vith -v选项,但似乎没有问题。
所以我的问题是:我错过了什么或者我应该在哪里开始寻找问题?
编辑:它在1分钟内只写了640个项目。增加线程数根本不会影响性能。数据库有320万条记录,我想基于LRU在缓存中添加100K。但是凭借这种表现,它似乎会永远地继续下去