Java Riak Connection Problems(Java Riak 连接问题)
问题描述
尝试将我的 Java Eclipse 连接到 Linux Ubuntu 上的 Riak 服务器.跟进了一些指南,但仍然无法正常工作.使用:- Riak-Client-2.0.2- Eclipse Oxygen.1a 版本 (4.7.1a)- Ubuntu 16.04.3- openjdk 版本1.8.0_151"
trying to connect my Java Eclipse to a Riak server on Linux Ubuntu. Followed up some guides but still don't working. Using: - Riak-Client-2.0.2 - Eclipse Oxygen.1a Release (4.7.1a) - Ubuntu 16.04.3 - openjdk version "1.8.0_151"
之前使用 slf4j 遇到过一些问题,所以我添加了一个外部 jar:slf4j-jdk14-1.7.25-sources 来解决.
Have had some problems before with slf4j so i added a external jar: slf4j-jdk14-1.7.25-sources to solve it.
我的代码:
import com.basho.riak.client.api.RiakClient;
import com.basho.riak.client.api.commands.kv.FetchValue;
import com.basho.riak.client.api.commands.kv.StoreValue;
import com.basho.riak.client.core.query.Location;
import com.basho.riak.client.core.query.Namespace;
import java.net.UnknownHostException;
import java.util.concurrent.ExecutionException;
public class ProdukteEinlesen {
public static void main(String [] args) throws UnknownHostException, ExecutionException, InterruptedException {
RiakClient client = RiakClient.newClient(8098, "127.0.0.1");
Location location = new Location(new Namespace("TestBucket"),"TestKey");
FetchValue fv = new FetchValue.Builder(location).build();
FetchValue.Response response = client.execute(fv);
// Fetch object as String
String value = response.getValue(String.class);
System.out.println(value);
client.shutdown();
}
}
现在我得到了这个:
Dez 04, 2017 5:58:23 PM com.basho.riak.client.core.RiakNode start
INFORMATION: RiakNode started; 127.0.0.1:8098
Dez 04, 2017 5:58:23 PM com.basho.riak.client.core.RiakCluster start
INFORMATION: RiakCluster is starting.
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-2083854054 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:674162571 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:1161062152 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1411904647 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1369356068 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:957736106 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1598195494 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1723639977 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$2 operationComplete
SCHWERWIEGEND: inAvailable channel closed; id:-1232050671 127.0.0.1:8098
Dez 04, 2017 6:03:20 PM com.basho.riak.client.core.RiakNode$3 operationComplete
SCHWERWIEGEND: Channel closed while operation in progress; id:-459317961 127.0.0.1:8098
Dez 04, 2017 6:08:17 PM com.basho.riak.client.core.RiakNode healthCheckFailed
SCHWERWIEGEND: RiakNode failed healthcheck operation; health checking; 127.0.0.1:8098 java.io.IOException: Channel closed while performing health check op.
Dez 04, 2017 6:08:17 PM com.basho.riak.client.core.DefaultNodeManager nodeStateChanged
INFORMATION: NodeManager moved node to unhealthy list; 127.0.0.1:8098
Dez 04, 2017 6:08:17 PM com.basho.riak.client.core.RiakNode$3 operationComplete
SCHWERWIEGEND: Channel closed while operation in progress; id:-1254319488 127.0.0.1:8098
Exception in thread "main" java.util.concurrent.ExecutionException: com.basho.riak.client.core.NoNodesAvailableException
at com.basho.riak.client.core.FutureOperation.get(FutureOperation.java:260)
at com.basho.riak.client.api.commands.CoreFutureAdapter.get(CoreFutureAdapter.java:52)
at com.basho.riak.client.api.RiakCommand.execute(RiakCommand.java:89)
at com.basho.riak.client.api.RiakClient.execute(RiakClient.java:293)
at ProdukteEinlesen.main(ProdukteEinlesen.java:18)
Caused by: com.basho.riak.client.core.NoNodesAvailableException
at com.basho.riak.client.core.RiakCluster.retryOperation(RiakCluster.java:468)
at com.basho.riak.client.core.RiakCluster.access$1000(RiakCluster.java:47)
at com.basho.riak.client.core.RiakCluster$RetryTask.run(RiakCluster.java:553)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我的 Riak DB 运行良好,已经通过命令体验了它.
My Riak DB is working fine tasted it already via command.
推荐答案
您似乎为 Riak 连接使用了不正确的端口号.Protocol Buffers API 的正确端口是 8087(假设您没有更改默认值).8098 端口用于 HTTP,您必须使用 cURL 或其他 HTTP 客户端测试过服务器.Java 代码应如下所示:
You seem to be using an incorrect port number for Riak connections. The correct port for the Protocol Buffers API is 8087 (assuming you haven't changed the defaults). Port 8098 is for HTTP, you must have tested the server with cURL or another HTTP client. The Java code should be as follows:
RiakClient client = RiakClient.newClient(8087, "127.0.0.1");
- Riak 协议缓冲区 API
- RiakClient Javadoc
这篇关于Java Riak 连接问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Java Riak 连接问题
基础教程推荐
- 在螺旋中写一个字符串 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01