Jakarta ee 在ApacheIgnite中使用Externalizable

Jakarta ee 在ApacheIgnite中使用Externalizable,jakarta-ee,ignite,Jakarta Ee,Ignite,我有四个疑问 我的模型类是可外化的。仍然可以使用 服务器节点上的SQLFieldsQuery没有任何问题,对吗 无法从远程中的客户端节点查询可外部化的项, 正确的?有没有办法让它在客户处实现 使用externalizable是否会以任何方式影响节点之间的集群数据 使用externalizable或任何性能是否有其他限制 担忧 是的,您仍然可以查询您的对象 您既可以从客户端查询,也可以从服务器查询 AffinityFunction使用键计算散列并获得适当的分区。所以结果取决于writeExtern

我有四个疑问

  • 我的模型类是可外化的。仍然可以使用 服务器节点上的SQLFieldsQuery没有任何问题,对吗

  • 无法从远程中的客户端节点查询可外部化的项, 正确的?有没有办法让它在客户处实现

  • 使用externalizable是否会以任何方式影响节点之间的集群数据

  • 使用externalizable或任何性能是否有其他限制 担忧

  • 是的,您仍然可以查询您的对象
  • 您既可以从客户端查询,也可以从服务器查询
  • AffinityFunction
    使用键计算散列并获得适当的分区。所以结果取决于writeExternal/readExternal实现,这意味着可以在分区之间更改密钥分配
  • 是的,使用
    Externalizable
    总是一个坏主意 首先,Ignite将使用
    OptimizedMarshaller
    ,它比默认情况下使用的
    BinaryMarshaller
    速度慢,生成的对象更大

    其次,Ignite on
    SQLFieldsQuery
    仅从二进制对象表示中读取特定字段。在
    可外部化的情况下
    ,它必须反序列化整个对象以读取其字段。因此,这种选择会对性能产生负面影响

    您还可以使用该接口。在这种情况下,将使用
    BinaryMarshaller

  • 是的,您仍然可以查询您的对象
  • 您既可以从客户端查询,也可以从服务器查询
  • AffinityFunction
    使用键计算散列并获得适当的分区。所以结果取决于writeExternal/readExternal实现,这意味着可以在分区之间更改密钥分配
  • 是的,使用
    Externalizable
    总是一个坏主意 首先,Ignite将使用
    OptimizedMarshaller
    ,它比默认情况下使用的
    BinaryMarshaller
    速度慢,生成的对象更大

    其次,Ignite on
    SQLFieldsQuery
    仅从二进制对象表示中读取特定字段。在
    可外部化的情况下
    ,它必须反序列化整个对象以读取其字段。因此,这种选择会对性能产生负面影响

    您还可以使用该接口。在这种情况下,将使用
    BinaryMarshaller