【问题标题】:Riak kv SearchOperation NoNodesAvailableExceptionRiak kv SearchOperation NoNodesAvailableException
【发布时间】:2021-02-07 11:29:45
【问题描述】:

我在这段代码中得到了 nonodesavailableexception:

String query = "{\"phone\":\"111\"}";
User user = new User("222",null,null);

SearchOperation searchOp = new SearchOperation.Builder(BinaryValue.create(INDEX),jsonUtils.covertFromObjectToJson(user)).build();

RiakCluster cluster = RiakClient.newClient(8087, "127.0.0.1").getRiakCluster();

RiakFuture<com.basho.riak.client.core.operations.SearchOperation.Response,BinaryValue> riakFuture = cluster.execute(searchOp);

com.basho.riak.client.core.operations.SearchOperation.Response response = searchOp.get(); //Getting error in this line.

String queryString = searchOp.getQueryInfo().toString();

【问题讨论】:

    标签: riak riak-kv


    【解决方案1】:

    虽然这是在黑暗中拍摄,NoNodesAvailableException 似乎暗示您的错误是客户端的错误,并且由于没有可用的节点而引发异常。

    恐怕我在为 Riak 解决客户端问题方面经验不足,但我可以告诉你在这种情况下我会怎么做。

    1. 检查 Riak 是否确实存在并正在运行。转到您的 Riak 框并执行 riak ping 并查看它是否返回 pong 以确认它在那里。如果是这样,运行riak-admin wait-for-service riak_kv 并等待它确认riak_kv is up
    2. 检查您是否可以从您的客户端计算机访问 Riak。根据您的上述查询,您应该能够运行 curl -v http://127.0.0.1:8098/stats -H "Accept: text/plain" 并让它返回有关您的 Riak 安装的统计信息列表。
    3. 对您的查询进行故障排除。请记住,您可以从客户端进行的几乎所有查询也可以从curl 进行。请参阅https://www.tiot.jp/riak-docs/riak/kv/2.9.0p5/developing/usage/search/ 以获取一组与搜索相关的示例,以帮助您入门。确认您的查询在 curl 中有效后,您可以仔细查看您在此处发布的查询,看看它是否与您的 curl 查询匹配,如果不匹配,请进行相应调整。

    根据您在出现问题之前完成上述 3 点列表的程度,您应该能够找到问题的根源,并自行或通过在此处发布新问题来集中精力解决此问题。

    【讨论】:

      猜你喜欢
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      相关资源
      最近更新 更多