ApacheIgnite的多个持久性存储
我有一个用例,其中我必须为我的ignite集群支持多个持久性存储,例如,缓存A1应该从数据库db1启动,缓存B1应该从数据库db2启动。可以这样做吗?在ignite配置XML中,我只能提供一个持久性存储详细信息ApacheIgnite的多个持久性存储,ignite,Ignite,我有一个用例,其中我必须为我的ignite集群支持多个持久性存储,例如,缓存A1应该从数据库db1启动,缓存B1应该从数据库db2启动。可以这样做吗?在ignite配置XML中,我只能提供一个持久性存储详细信息 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.sprin
<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">
<!-- Datasource for Persistence. -->
<bean name="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:roc12c" />
<property name="username" value="test" />
<property name="password" value="test" />
</bean>
在我的CacheStore实现中,我只能访问此数据库,对吗 我没有尝试过这个,但是如果它与其他bean配置的系统相似的话。您应该能够创建另一个具有不同名称和配置的bean。然后在
A1
和B1
的缓存配置中指定不同的数据源。话虽如此,我只是从理论上猜测
也许你已经这么做了,但我不能从你的问题中看出。如果您选择以这种方式实现缓存,那么您肯定可以将两个缓存配置为具有不同的数据源。这就是我目前实现多个缓存的方式。在我使用的缓存存储中,我专门调用要转到的数据库
这是我的缓存配置
<property name="cacheConfiguration">
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<!-- Set a cache name. -->
<property name="name" value="recordData"/>
<property name="rebalanceMode" value="ASYNC"/>
<property name="cacheMode" value="PARTITIONED"/>
<property name="backups" value="1"/>
<!-- Enable Off-Heap memory with max size of 10 Gigabytes (0 for unlimited). -->
<property name="memoryMode" value="OFFHEAP_TIERED"/>
<property name="offHeapMaxMemory" value="0"/>
<property name="swapEnabled" value="false"/>
<property name="cacheStoreFactory">
<bean class="javax.cache.configuration.FactoryBuilder" factory-method="factoryOf">
<constructor-arg value="com.company.util.MyDataStore"/>
</bean>
</property>
<property name="readThrough" value="true"/>
<property name="writeThrough" value="true"/>
</bean>
</property>
缓存存储是针对每个缓存配置的,因此您只需将不同的数据源注入不同的存储。您展示的只是一个独立的数据源bean,它甚至不是IgniteConfiguration
的一部分。您可以有多个具有不同ID的数据源bean。您可以添加从中获得该示例的文档吗?@Carlos这是Ignite站点提供的示例程序Ignite-Config.xml的一部分。我将把这个“dataSource”bean注入到CacheJdbcPojoStoreFactory对象中,这个工厂将使用CacheConfiguration.setCacheStoreFactory方法在我的CacheConfiguration对象中设置。实际上,我遵循的是自动持久化技术,我们可以避免为每个缓存[链接]实现CacheStore。