Skip to content

dream11/vertx-aerospike-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Reactive Aerospike Client

Continuous Integration Code Coverage License

Overview

The Vert.x Aerospike client provides an asynchronous API to interact with aerospike server. (Internally uses AerospikeClient's async commands and handles the result on vertx-context)

Usage

Add the following dependency to the dependencies section of your build descriptor:

  • Maven (in your pom.xml):
  <dependency>
    <groupId>io.d11</groupId>
    <artifactId>vertx-aerospike-client</artifactId>
    <version>LATEST</version>
  </dependency>
  • Gradle (in your build.gradle file):
  dependencies {
   compile 'io.d11:vertx-aerospike-client:x.y.z'
  }

Connecting to Aerospike

  AerospikeConnectOptions connectOptions = new AerospikeConnectOptions()
    .setHosts("my-host")
    .setEventLoopSize(16);

  // create a shared aerospike client across vertx instance
  AerospikeClient client = AerospikeClient.create(vertx, connectOptions);
  
  // create non shared aerospike client
  AerospikeClient client = AerospikeClient.createNonShared(vertx, connectOptions);

Configuration

Configuration options for AerospikeConnectOptions

Key Default Type Required Description
host localhost String false Aerospike server host
port 3000 Integer false Aerospike server port
eventLoopSize 2*<#cores> Integer false Number of EventLoop threads
maxCommandsInProcess 100 Integer false Maximum number of commands in process on each EventLoop thread
maxCommandsInQueue 0 Integer false Maximum number of commands in each EventLoop's queue
maxConnsPerNode 2*<#cores>*100 Integer false Maximum number of connections to one server node
maxConnectRetries 2 Integer false Maximum number of retries to connect
clientPolicy ClientPolicy false Aerospike client policy

Note on Configuration options:

  • Do not set the clientPolicy.eventLoops. Use AerospikeConnectOptions to configure them.

Running queries

  AerospikeClient client = AerospikeClient.create(vertx, connectOptions);
  client
    .rxGet(policy, key)
    .map(record -> {
      // Handle record
        })...

Detailed documentation can be found here.

Running the tests

To run the test suite:

  mvn clean verify

The test suite runs a Docker container from image aerospike/aerospike-server using TestContainers by default.

To run the test suite on a container built from a different docker image:

  mvn clean verify -Daerospike.image=<image>