如何使用Java客户端在Riak中存储对象?

时间:2010-04-20 09:18:26

标签: java riak key-value-store

我已经在Ubuntu机器上设置了Riak,如果我riak ping,它就可以正常工作。

现在我想使用Riak Java client来存储一个对象,但它不起作用。当我尝试存储对象时,我得到com.basho.riak.client.response.RiakIORuntimeException。我究竟做错了什么?有没有办法测试我是否可以从我的Java客户端访问riak?我必须先创建一个Bucket吗?如何?

import com.basho.riak.client.RiakClient;
import com.basho.riak.client.RiakObject;
import com.basho.riak.client.response.FetchResponse;

public class RiakTest {

    public static void main(String[] args) {

        // connect
        RiakClient riak = new RiakClient("http://192.168.1.107:8098/riak");

        // create object
        RiakObject o = new RiakObject("mybucket", "mykey", "myvalue");

        // store
        riak.store(o);  
    }
}

2 个答案:

答案 0 :(得分:3)

Jonas,默认情况下,Riak的HTTP服务器仅绑定到本地接口(127.0.0.1)。要更改此设置,请关闭实例并编辑app.config文件。将设置“riak_web_ip”更改为“0.0.0.0”,它将绑定到所有接口。

有关详细信息,请参阅http://wiki.basho.com/display/RIAK

答案 1 :(得分:0)

最新的wiki page

所以你需要:

  1. 关闭节点
  2. 删除每个节点中的目录“ring”:{node directory} / data / ring
  3. 在etc / vm.args中将名称从riak@127.0.0.1更改为smth,如riak@192.168.1.10
  4. 在etc / app.config中更改http和pb_ip设置

    from http, [ {"127.0.0.1", 8098 } ]},  to http, [ {"0.0.0.0", 8098 } ]},
    

    from {pb_ip,   "127.0.0.1" }, to {pb_ip,   "0.0.0.0" },