Java Client
GridGain 9 clients connect to the cluster via a standard socket connection. Unlike GridGain 2.x, there is no separate Thin and Thick clients in GridGain 9. All clients are 'thin'.
Clients do not become a part of the cluster topology, never hold any data, and are not used as a destination for compute calculations.
Getting Started
Prerequisites
To use Java thin client, Java 11 or newer is required.
Installation
Java client can be added to your project by using maven:
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-client</artifactId>
<version>9.0.11</version>
</dependency>
Connecting to Cluster
To initialize a client, use the IgniteClient
class, and provide it with the configuration:
try (IgniteClient client = IgniteClient.builder()
.addresses("127.0.0.1:10800")
.build()
) {
// Your code goes here
}
Authentication
To pass authentication information, use the IgniteClientAuthenticator
class and pass it to IgniteClient
builder:
IgniteClientAuthenticator auth = BasicAuthenticator.builder().username("myUser").password("myPassword").build();
IgniteClient.builder()
.addresses("127.0.0.1:10800")
.authenticator(auth)
.build();
Limitations
There are limitations to user types that can be used for such a mapping. Some limitations are common, and others are platform-specific due to the programming language used.
-
Only flat field structure is supported, meaning no nesting user objects. This is because Ignite tables, and therefore tuples have flat structure themselves;
-
Fields should be mapped to Ignite types;
-
All fields in user type should either be mapped to Table column or explicitly excluded;
-
All columns from Table should be mapped to some field in the user type;
-
Java only: Users should implement Mapper classes for user types for more flexibility;
Client Metrics
Java
When running Java client, you need to enable metrics in the client builder:
IgniteClient client = IgniteClient.builder()
.addresses("127.0.0.1:10800")
.metricsEnabled(true)
.build();
After that, client metrics will be available to any Java monitoring tool, for example JDK Mission Control.
Available Java Metrics
Metric name | Description |
---|---|
ConnectionsActive |
The number of currently active connections. |
ConnectionsEstablished |
The number of established connections. |
ConnectionsLost |
The number of connections lost. |
ConnectionsLostTimeout |
The number of connections lost due to a timeout. |
HandshakesFailed |
The number of failed handshakes. |
HandshakesFailedTimeout |
The number of handshakes that failed due to a timeout. |
RequestsActive |
The number of currently active requests. |
RequestsSent |
The number of requests sent. |
RequestsCompleted |
The number of completed requests. Requests are completed once a response is received. |
RequestsRetried |
The number of request retries. |
RequestsFailed |
The number of failed requests. |
BytesSent |
The amount of bytes sent. |
BytesReceived |
The amount of bytes received. |
StreamerBatchesSent |
The number of data streamer batches sent. |
StreamerItemsSent |
The number of data streamer items sent. |
StreamerBatchesActive |
The number of existing data streamer batches. |
StreamerItemsQueued |
The number of queued data streamer items. |
Client Connection Configuration
There is a number of configuration properties managing the connection between the client and GridGain cluster:
IgniteClient client = IgniteClient.builder()
.addresses("127.0.0.1:10800")
.connectTimeout(5000)
.heartbeatInterval(30000)
.heartbeatTimeout(5000)
.operationTimeout(3000)
.reconnectInterval(30000)
.reconnectThrottlingPeriod(30000)
.reconnectThrottlingRetries(3)
.retryPolicy(new RetryLimitPolicy().retryLimit(8))
.build();
Configuration name | Description |
---|---|
connectTimeout |
Client connection timeout, in milliseconds. |
heartbeatInterval |
Heartbeat message interval, in milliseconds. |
heartbeatTimeout |
Heartbeat message timeout, in milliseconds. |
operationTimeout |
Operation timeout, in milliseconds. |
reconnectInterval |
Background reconnect interval, in milliseconds. |
reconnectThrottlingPeriod |
Reconnect throttling period, in milliseconds. |
reconnectThrottlingRetries |
Reconnect throttling retries. |
retryPolicy |
Retry policy. By default, all read operations are retried up to 16 times, and write operations are not retried. |
© 2024 GridGain Systems, Inc. All Rights Reserved. Privacy Policy | Legal Notices. GridGain® is a registered trademark of GridGain Systems, Inc.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.