2017-07-24 66 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時,它工作正常。