Connect
Establish a basic client connection to the KubeMQ server using the Java SDK before sending or receiving messages.
Overview
Every KubeMQ application starts the same way: open a connection to the broker and prove it actually works before building anything on top of it. This tutorial is that first lesson — create a client, give it a stable identity, and confirm connectivity with a health check, so the pattern is muscle memory before you move on to real messaging.
QueuesClient.builder() is constructed with an address and a clientId — the ID tags this connection in broker logs, subscriptions, and management views, so pick something stable rather than a random string. client.ping() verifies the round trip cheaply: it returns live server info (host, version, uptime) instead of just "no exception," proving the client is talking to a real broker rather than silently misconfigured. All client classes implement AutoCloseable, so try-with-resources releases the gRPC channel even on exception.
Gotchas: building the client doesn't always mean the broker is reachable — the channel can be established lazily, so ping() is the only reliable proof; reusing the same client ID across running instances causes routing confusion on the broker; and skipping try-with-resources in quick scripts is a common source of leaked channels under load.
Prerequisites
- KubeMQ server running on
localhost:50000 - Java SDK installed (
implementation 'io.kubemq.sdk:kubemq-sdk-Java:3.1.1'(Gradle) or Maven dependency from Getting Started)
Code
package io.kubemq.example.connection;
import io.kubemq.sdk.queues.QueuesClient;
import io.kubemq.sdk.common.ServerInfo;
public class ConnectExample {
public static void main(String[] args) {
// TODO: Replace with your KubeMQ server address
String address = "localhost:50000";
try (QueuesClient client = QueuesClient.builder()
.address(address)
.clientId("java-connection-connect-client")
.build()) {
ServerInfo info = client.ping();
System.out.printf("Connected successfully: host=%s version=%s uptime=%ds%n",
info.getHost(), info.getVersion(), info.getServerUpTimeSeconds());
} catch (Exception e) {
System.err.println("Connection failed: " + e.getMessage());
}
}
}
// Expected output:
// Connected successfully: host=<host> version=<version> uptime=<uptime>s
How It Works
QueuesClient.builder()constructs the client without opening a connection; the gRPC channel is established lazily on first use or explicitly viaping().client.ping()issues a gRPC health-check RPC and returnsServerInfocontaining the host, SDK version, and server uptime.- All three client classes (
PubSubClient,QueuesClient,CQClient) implementAutoCloseable, sotry-with-resourcesensures the underlying gRPC channel is released even if an exception occurs. - Replace
localhost:50000with the actual broker address and set a stableclientIdstring — it is used for subscription routing and server-side logging.
Related
Was this page helpful?