vertx-aerospike-client

Logo

Non-Blocking Rxified Vertx aerospike client

View the Project on GitHub dream11/vertx-aerospike-client

The Reactive Aerospike Client

Continuous Integration Code Coverage License

Overview

The Vert.x Aerospike client provides an asynchronous API to interact aerospike server.

Usage

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

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:

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>