java - Apache ignite 关于 setStoreKeepBinary 和 setBackups 的缓存配置
问题描述
我正在为我的缓存使用波纹管配置:
CacheConfiguration<String, TestInfo> cacheCfg =
new CacheConfiguration<>("TestInfoCache");
cacheCfg.setCacheMode(CacheMode.REPLICATED);
cacheCfg.setStoreKeepBinary(true);
cacheCfg.setAtomicityMode(ATOMIC);
cacheCfg.setBackups(1);
我只是使用缓存做一些简单的 get 和 put 工作,我应该 setStoreKeepBinary true 还是 false,我已经阅读了文档:https ://apacheignite.readme.io/docs/binary-marshaller 似乎这个标志用于缓存存储,我应该打开它还是打开它不适合高流量?
另外,对于 setBackups,我有 3 个服务器节点,以保证数据安全和高性能,什么数字合适,1 或 3,我不确定,谢谢。
解决方案
setStoreKeepBinary 标志的 False 值在某些情况下可以简化存储实现,但由于二进制对象的额外序列化和反序列化,它可能会导致性能下降。您还需要在所有节点上都有键和值类,因为在调用 store 时二进制将被反序列化。
因此,如果您已经拥有包含表中某些列的数据库,您显然不能使用 setStoreKeepBinary=true,但是如果您从头开始创建 CacheStore,并且您没有其他应用程序可以直接从 DB 访问数据(因为它会以 BinaryObject 格式存储),以二进制格式存储对象是有意义的,因为它在大多数情况下会表现出更好的性能。
推荐阅读
- flutter - Flutter:为什么在 Future 上使用 await 不会暂停代码执行
- java - 在 Stream 上 Flink 多个 keyBy()
- xaml - 圆形 DropShadowPanel
- php - 在本地主机上使用 PHPMailer SMTP 发送邮件无法发送
- javascript - 从 JavaScript 调用 C# 方法并返回一个字符串
- image - 如何在本机反应中将图像的ascii格式转换为jpeg
- java - Mockito 测试不适用于提交者的 Eclipse 4.9
- php - Laravel 如何在两个 Seeder 之间建立关系
- range - Maya MEL - 在时间轴中突出显示特定范围
- python-3.x - 在 Python 中反序列化 XML