当前位置: 首页 > 知识库问答 >
问题:

Apache Ignite二进制失效

杨轶
2023-03-14

我创建了名为'sometype'的二进制类型和文件:

f1:string
f2:string

并基于此类型进行缓存(通过CacheConfiguration.SetQueryEntities)。

ignite.destroyCache(cacheName)
org.apache.ignite.binary.BinaryObjectException: Wrong value has been set [typeName=SomeType, fieldName=f1, fieldType=String, assignedValueType=int]

但是我如何刷新我的二进制类型matadata whithout创建新的?

共有1个答案

姜泳
2023-03-14

是的,这是意料之中的行为。首先,marshaller在Ignite中是全局的,元数据也是全局的,因此破坏缓存不会对此产生影响。其次,二进制格式允许动态更改模式,但更改必须兼容。也就是说,您可以更改和/或移除字段,但不能更改它们的类型,因为在这种情况下,使用旧模式的客户端如果想要反序列化对象,将无法反序列化对象。

 类似资料:
  • 在我的javascript中,我有一个base64编码的pkcs12对象,我想作为下载链接提供它。要下载的Pkcs12(pfx)文件是二进制数据。 因此,我对该对象进行了解码,并尝试从中创建objectUrl: 问题是,下载的文件比原始二进制数据大,无法识别为pkcs12。看起来好像文件中引入了一些utf-8/unicode内容。 如果我向createObjectURL提供原始的base64编码数

  • 我可以运行这个程序,但由于某些原因,它会显示/放置随机字符,而不是二进制的初始值,而且我似乎无法将程序从十进制运行回二进制。我该如何改进这些代码。要明确说明它不会将二进制转换为十进制,我将如何将其转换回十进制转换为二进制,如果有一些代码可以帮助我,将不胜感激。

  • 主要内容:二进制,八进制,十六进制我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。 例如表示 5+8 的结果,一个数字不够,只能”进位“,用 13 来表示;这时”进一位“相当于十,”进两位“相当于二十。 因为逢十进一(满十进一),也因为只有 0~9 共十个数字,所以叫做 十进制(Decimalism)。十进

  • 问题内容: 我正在使用python shell来解决print命令在python中的工作方式。 当我输入 打印01 1 打印010 8 打印0100 64 打印030 24 这里发生了什么?只是基数2?为什么第二个位置的“一个”打印为8?如果不是二进制,应该不是2吗? 问题答案: 以0开头的数字在Python 2中将其标记为八进制。这被认为是令人困惑,令人惊讶且不一致的,因为以0x开头会将其标记为

  • kubectl get Pods-N队列-前门 客户端XML SpringConfig文件

  • 问题内容: 我知道用和 将小数转换为二进制(在这里我取32位结果的低16位)。 我想做的是另一种方法,并采用16位二进制补码二进制字符串并将其转换为十进制。 即 而不是 我该怎么做? 问题答案: 您需要将结果读取到中。 此打印。