- 
                Notifications
    You must be signed in to change notification settings 
- Fork 158
Client Factory
        Alex Moore edited this page Jun 10, 2015 
        ·
        1 revision
      
    Note: This document is for the 1.x Java Client series.
HTTP of PB Client with defaults
HTTP or PB client with supplied configuration
HTTP or PB cluster client
import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakFactory;
import com.basho.riak.client.RiakException;
public class App
{
    public static void main(String[] args) throws RiakException
    { 
        // Riak HTTP client with defaults
        IRiakClient myDefaultHttpClient = RiakFactory.httpClient();
        // Riak HTTP client using supplied URL
        IRiakClient myHttpClient = RiakFactory.httpClient("http://172.16.1.34:8098/riak");
        // Riak Protocol Buffers client with defaults
        IRiakClient myDefaultPbClient = RiakFactory.pbcClient();
        // Riak Protocol Buffers client with supplied IP and Port
        IRiakClient myPbClient = RiakFactory.pbcClient("172.16.1.34", 8087);
        myDefaultHttpClient.shutdown();
        myHttpClient.shutdown();
        myDefaultPbClient.shutdown();
        myPbClient.shutdown();
    }   
}import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakFactory; 
import com.basho.riak.client.raw.http.HTTPClientConfig;
import com.basho.riak.client.raw.pbc.PBClientConfig;
import com.basho.riak.client.RiakException;
public class App
{
    public static void main(String[] args) throws RiakException
    {
        // See Javadoc for HTTPClientConfig.Builder for all options
        HTTPClientConfig cc = HTTPClientConfig.Builder().withPort(8088).withMaxConnections(20).build();
        IRiakClient myHttpClient = RiakFactory.newClient(cc);
        // see Javadoc for PBClientConfig.Builder for all options
        PBClientConfig pbcc = PBClientConfig.Builder().withConnectionTimeoutMillis(30000).withHost("192.168.1.22").build();
        IRiakClient myPbClient = RiakFactory.newClient(pbcc);
        myHttpClient.shutdown();
        myPbClient.shutdown();
    }
}By using a cluster client (HTTPClusterClient or PBClusterClient) you would get not only fail-over on an operation failure but also round-robin balancing of operations across your nodes.
When you create either a HTTPClusterClient or a PBClusterClient you provide a list of Raik nodes. When performing an operation there's a Retrier object that is used by the Bucket object. The default Retrier re-tries an operation 3 times before reporting a failure. On each try (the initial and each re-try), a different node is selected from the list of Riak nodes.
import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakFactory; 
import com.basho.riak.client.raw.http.HTTPClusterConfig;
import com.basho.riak.client.raw.pbc.PBClusterConfig;
import com.basho.riak.client.RiakException;
public class App
{
    public static void main(String[] args) throws RiakException
    {
        int maxConnections = 50;
        myHttpClusterConfig = new HTTPClusterConfig(maxConnections);
        // See example above for client config options
        HTTPClientConfig myHttpClientConfig3 = HTTPClientConfig.defaults();
        myHttpClusterConfig.addHosts(myHttpClientConfig3, "192.168.1.10","192.168.1.11","192.168.1.12");
        IRiakClient myHttpClient = RiakFactory.newClient(myHttpClusterConfig);
        PBClusterConfig myPbClusterConfig = new PBClusterConfig(maxConnections);
        // See above examples for client config options
        PBClientConfig myPbClientConfig = PBClientConfig.defaults();
        myPbClusterConfig.addHosts(myPbClientConfig, "192.168.1.10","192.168.1.11","192.168.1.12");
        IRiakClient myPbClient = RiakFactory.newClient(myPbClusterConfig);
        myHttpClient.shutdown();
        myPbClient.shutdown();
    }
}