我正在为我的缓存使用以下配置:
CacheConfiguration<String, TestInfo> cacheCfg =
new CacheConfiguration<>("TestInfoCache");
cacheCfg.setCacheMode(CacheMode.REPLICATED);
cacheCfg.setStoreKeepBinary(true);
cacheCfg.setAtomicityMode(ATOMIC);
cacheCfg.setBackups(1);
我只是使用缓存来做一些简单的获取和放置工作,如果我将setStoreKeepBinary设置为true或false,我已经阅读了doc:https://apacheignite.readme.io/docs/binary-marshaller
似乎此标志用于缓存存储,我是否应该将其打开,或者如果将其打开将不适合高流量?
另外,对于setBackups,我有3个服务器节点,为了确保数据安全和高性能,合适的数字是1或3,对此我不确定,
谢谢。
最佳答案
setStoreKeepBinary标志的False值在某些情况下可以简化存储的实现,但是由于二进制对象的其他序列化和反序列化,它可能导致性能下降。您还需要在所有节点上具有键和值类,因为在调用store时二进制文件将反序列化。
因此,如果您已经具有在表中具有某些列的数据库,则显然不能使用setStoreKeepBinary = true,但是如果您是从头开始创建CacheStore的,并且没有其他应用程序可以直接从DB访问数据(因为它将(以BinaryObject格式存储),则以Binary格式存储对象将很有意义,因为在大多数情况下,它会显示出更好的性能。