2017-07-24 69 views
0

我试图写一个简单的Java客户端使用spymemcached库couchbase互动(我的要求,我不能用couchbase SDK)spymemcached Java客户端为couchbase

我的代码看起来像下面 -

AuthDescriptor ad = new AuthDescriptor(new String[] { "PLAIN" }, 
    new PlainCallbackHandler(
      "****", "****")); 

MemcachedClient client = new MemcachedClient(
    new ConnectionFactoryBuilder() 
    .setProtocol(ConnectionFactoryBuilder.Protocol.BINARY) 
    .setAuthDescriptor(ad) 
    .build(), 
    AddrUtil.getAddresses(Arrays.asList("127.0.0.1:11211"))); 

// Store a value (async) for one hour 
client.set("someKey", 3600, "someValue"); 
client.set("otherKey", 3600, 100L); 
client.set("1", 3600, 1); 
client.set("2", 3600, 2); 

// Retrieve a value. 
Object myObject = client.get("someKey"); 
System.out.println(myObject); 

Map<String, Object> someKey = client.getBulk("someKey"); 
for (Map.Entry<String, Object> entry : someKey.entrySet()) { 
    System.out.println(entry.getKey()); 
    System.out.println(entry.getValue()); 
} 

Collection<SocketAddress> servers = client.getAvailableServers(); 
System.out.println(servers); 

client.shutdown(); 

我已经couchbase服务器了,在我的本地主机上运行,​​当我运行上面的代码,我碰到下面的错误 -

2017-07-24 15:42:58.397 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue 
    2017-07-24 15:42:58.558 ERROR net.spy.memcached.protocol.binary.SASLAuthOperationImpl: Error: Auth failure 
    2017-07-24 15:42:58.559 WARN net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl: Discarding partially completed op: SASL auth operation 
    2017-07-24 15:42:58.560 INFO net.spy.memcached.MemcachedConnection: Reconnection due to exception handling a memcached operation on {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=1}. This may be due to an authentication failure. 
    OperationException: SERVER: Auth failure 
     at net.spy.memcached.protocol.BaseOperationImpl.handleError(BaseOperationImpl.java:192) 
     at net.spy.memcached.protocol.binary.OperationImpl.finishedPayload(OperationImpl.java:204) 
     at net.spy.memcached.protocol.binary.SASLBaseOperationImpl.finishedPayload(SASLBaseOperationImpl.java:98) 
     at net.spy.memcached.protocol.binary.OperationImpl.readPayloadFromBuffer(OperationImpl.java:196) 
     at net.spy.memcached.protocol.binary.OperationImpl.readFromBuffer(OperationImpl.java:139) 
     at net.spy.memcached.MemcachedConnection.readBufferAndLogMetrics(MemcachedConnection.java:861) 
     at net.spy.memcached.MemcachedConnection.handleReads(MemcachedConnection.java:840) 
     at net.spy.memcached.MemcachedConnection.handleReadsAndWrites(MemcachedConnection.java:720) 
     at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:683) 
     at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:436) 
     at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:1446) 
    2017-07-24 15:42:58.561 WARN net.spy.memcached.MemcachedConnection: Closing, and reopening {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=1}, attempt 0. 
    2017-07-24 15:42:58.564 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for someKey. 
    2017-07-24 15:42:58.565 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for otherKey. 
    2017-07-24 15:42:58.565 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for 1. 
    2017-07-24 15:42:58.565 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for 2. 
    2017-07-24 15:42:58.565 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for someKey. 
    2017-07-24 15:42:58.659 WARN net.spy.memcached.auth.AuthThread: Authentication failed to /127.0.0.1:11211, Status: {OperationStatus success=false: cancelled} 
    2017-07-24 15:42:58.661 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for someKey. 
    2017-07-24 15:42:58.661 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for otherKey. 
    2017-07-24 15:42:58.661 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for 1. 
    2017-07-24 15:42:58.662 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for 2. 
    2017-07-24 15:42:58.662 WARN net.spy.memcached.MemcachedConnection: Could not redistribute to another node, retrying primary node for someKey. 

我还试图连接到localhos t实例使用telnet和运行统计命令,但得到这个错误 - SERVER_ERROR unauthorized, null bucket

欣赏任何投入来解决这个问题!

回答

0

Couchbase Server 5.0 Beta 2版本发生此问题时,当我尝试使用稳定版本的Couchbase Server 4.6.0时,它工作正常。