【问题标题】:does Ignite support read-through via REST API?Ignite 是否支持通过 REST API 进行通读?
【发布时间】:2022-11-07 15:26:06
【问题描述】:

Ignite 可用于缓存来自其他数据库的数据。 当我们使用客户端请求一个值时,如果这个值不在缓存中,Ignite会在数据库中找到它,返回并存储在缓存中。 但是当我们通过 REST API 请求它并且 Ignite 没有在它的缓存中找到值时,它只是简单地返回 null,并且不会在数据库中查找值。 当通过 REST API 访问时,是否有一些设置支持通读,或者仅在通过客户端访问时才支持?

没有找到: http://127.0.0.1:8080/ignite?cmd=get&key=33&cacheName=PersonCache&keyType=long&valueType=long {"successStatus":0,"affinityNodeId":"33fa60c6-6dfe-4d3a-ae95-2c08c9e56f3f","sessionToken":null,"error":null,"response":null}

当通过客户端访问时,它没有找到它,而是从数据库中提取它: java -jar ignite-loader.jar 127.0.0.1 PersonCache 33 连接到点燃:127.0.0.1 连接到表:PersonCache 运行前缓存大小:2 结果查询键 33 为 3 经过时间查询:812 运行后缓存大小:3

现在才通过api找到: http://127.0.0.1:8080/ignite?cmd=get&key=33&cacheName=PersonCache&keyType=long&valueType=long {"successStatus":0,"affinityNodeId":"33fa60c6-6dfe-4d3a-ae95-2c08c9e56f3f","sessionToken":null,"error":null,"response":"3"}

【问题讨论】:

  • 如果键是字符串“Mike”,键类型怎么可能是长的?
  • 不好意思,我改了IP和数据,其实还有其他值
  • 你有多少个节点?如果您直接请求密钥的亲和节点,此结果是否仍然存在?
  • 现在我们使用一个节点。当我们使用 Java 客户端请求时,结果存储在缓存中,可以使用 REST IP 获取
  • 它对我有用,你能分享更多细节吗?您使用什么缓存存储?你有复制器吗?你的点燃版本是什么?

标签: ignite


【解决方案1】:

该问题与 Ignite 中的错误有关,其中 skipStore=true 始终通过 REST 应用于 GET 请求,而不管设置的选项如何。我为此提交了ticket

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2016-02-27
    • 2012-11-02
    • 2019-12-02
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多