Ignite配置:厚客户端+Write Behind模式下的配置位置咨询
Apache Ignite厚客户端+Write Behind模式配置答疑
1. 缓存的数据源配置位置
数据源必须配置在服务器节点。
原因:Write Behind是Ignite服务器节点负责执行的异步写回逻辑,厚客户端仅作为数据访问入口,不存储数据也不处理持久化操作。服务器需要直接连接数据库完成异步写任务,因此数据源的URL、用户名、密码等信息必须在服务器节点的配置中定义。
2. 缓存配置的设置位置
需要分节点配置:
- 服务器节点XML:必须在此定义完整的缓存配置,包括Write Behind的参数(如写回间隔、批量大小)、关联的CacheStore实现以及数据源引用。因为Write Behind逻辑由服务器执行,缓存的核心规则需要在服务器端生效。
- 客户端节点XML:只需配置厚客户端的集群连接信息(如服务器地址列表),并引用服务器端已定义的缓存名称即可。客户端无需重复配置Write Behind等持久化规则,但要确保客户端配置的缓存名称与服务器端一致,否则无法正常访问。
配置片段示例
服务器节点XML缓存配置片段
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test_db"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <bean id="cacheStore" class="com.example.MyCustomCacheStore"> <property name="dataSource" ref="dataSource"/> </bean> <cache:ignite-config> <cache:cache name="myCache" atomicity-mode="TRANSACTIONAL"> <cache:store store-ref="cacheStore" write-behind-enabled="true"> <cache:write-behind flush-frequency="1000" flush-size="100"/> </cache:store> </cache:cache> </cache:ignite-config>
客户端节点XML配置片段
<cache:ignite-config client-mode="true"> <cache:discovery-spi type="TcpDiscoverySpi"> <cache:ip-finder type="TcpDiscoveryVmIpFinder"> <cache:addresses> <value>127.0.0.1:47500..47509</value> </cache:addresses> </cache:ip-finder> </cache:discovery-spi> <!-- 引用服务器端定义的缓存,无需重复配置Write Behind --> <cache:cache name="myCache"/> </cache:ignite-config>
内容的提问来源于stack exchange,提问作者Karthik_Rajendiran
相关产品推荐
相关产品推荐

