MilvusClient
MilvusClient is an abstract interface of the Milvus client. MilvusServiceClient class is the implementation.
package io.milvus.client;
MilvusServiceClient(ConnectParam connectParam)
Methods of MilvusClient for connection:
Method  | 
     Description  | 
     Parameters  | 
     Returns  | 
   
|---|---|---|---|
withTimeout(long timeout, TimeUnit timeoutUnit)  | 
     Timeout setting for RPC call.  | 
     timeout: The timeout period when invoking a method. timeoutUnit: The unit for timeout.  | 
     MilvusClient  | 
   
withRetry(RetryParam retryParam)  | 
     Sets the parameters for retry.  | 
     retryParam: Parameter for retry on failure.  | 
     MilvusClient  | 
   
close(long maxWaitSeconds)  | 
     Disconnects from a Milvus server with a configurable timeout value. Call this method before the application terminates.This method throws an   | 
     maxWaitSeconds: The timeout period to wait for the RPC channel to close.  | 
     N/A  | 
   
setLogLevel(LogLevel level)  | 
     Set log level in runtime.Note: this method cannot change the log level configured by log4j configurations. It only hides some logs inside the MilvusClient class.  | 
     level: A log level  | 
     N/A  | 
   
ConnectParam
Use the ConnectParam.Builder to construct a ConnectParam object for the MilvusClient.
import io.milvus.param.ConnectParam;
ConnectParam.Builder builder = ConnectParam.newBuilder();
Methods of ConnectParam.Builder:
Method  | 
        Description  | 
        Patameters  | 
    
|---|---|---|
withHost(String host)  | 
        Sets the host name or address.  | 
        host: The name or address of the host.  | 
    
withPort(int port)  | 
        Sets the connection port.   | 
        port: The connection port.  | 
    
withUri(String uri)  | 
        Sets the uri of remote service.  | 
        uri: The uri of remote service.  | 
    
withToken(String token)  | 
        Sets the token of remote service.  | 
        token: serving as the key for identification and authentication purposes.  | 
    
withDatabaseName(String databaseName)  | 
        Sets the database name. database name can be null for default database.  | 
        databaseName: The database name.  | 
    
withConnectTimeout(long connectTimeout, TimeUnit timeUnit)  | 
        Sets the connection timeout value of client channel. The timeout value must be greater than zero. The default value is 10 seconds.  | 
        connectTimeout: The connection timeout period.  | 
    
withKeepAliveTime(long keepAliveTime, TimeUnit timeUnit)  | 
        Sets the keep-alive time value of the client channel. The time value must be greater than zero. The default value is 55 seconds.  | 
        keepAliveTime: The keep-alive time period.  | 
    
withKeepAliveTimeout(long keepAliveTimeout, TimeUnit timeUnit)  | 
        Sets the keep-alive timeout value of client channel. The timeout value must be greater than zero. The default value is 20 seconds.  | 
        keepAliveTimeout: The keep-alive timeout value.  | 
    
keepAliveWithoutCalls(boolean enable)  | 
        Enables the keep-alive function for the client channel. The default value is false.  | 
        enable: Boolean value to indicate if the keep-alive function is enabled. The keep-alive function is enabled if the value is set to true.  | 
    
secure(boolean enable)  | 
        Enables security for the client channel.  | 
        enable: Security is enabled if the value is set to true.  | 
    
withIdleTimeout(long idleTimeout, TimeUnit timeUnit)  | 
        Sets the value of idle timeout of the client channel. The timeout value must be greater than zero. The default value is 24 hours.  | 
        idleTimeout: The idle timeout period of the client channel.  | 
    
withRpcDeadline(long deadline, TimeUnit timeUnit)  | 
        Set a deadline for how long you are willing to wait for a reply from the server.  | 
        deadline: deadline value  | 
    
withAuthorization(String username, String password)  | 
        Sets the username and password for this connection.  | 
        username: The username of the current user.  | 
    
withClientKeyPath(String clientKeyPath)  | 
        Set the client.key path for tls two-way authentication, only takes effect when "secure" is True.  | 
        clientKeyPath: The local path of client.key  | 
    
withClientPemPath(String clientPemPath)  | 
        Set the client.pem path for tls two-way authentication, only takes effect when "secure" is True.  | 
        clientPemPath: The local path of client.pem  | 
    
withCaPemPath(String caPemPath)  | 
        Set the ca.pem path for tls two-way authentication, only takes effect when "secure" is True.  | 
        caPemPath: The local path of ca.pem  | 
    
withServerPemPath(String serverPemPath)  | 
        Set the server.pem path for tls one-way authentication, only takes effect when "secure" is True.  | 
        serverPemPath: The local path of server.pem  | 
    
withServerName(String serverName)  | 
        Set target name override for SSL host name checking, only takes effect when "secure" is True.  | 
        serverName: The override name for SSL host.  | 
    
build()  | 
        Constructs a ConnectParam object.  | 
        N/A  | 
    
The ConnectParam.Builder.build() can throw the following exceptions:
- ParamException: error if the parameter is invalid.
 
RetryParam
Use the RetryParam.Builder to construct a RetryParam object for the MilvusClient.
import io.milvus.param.RetryParam;
RetryParam.Builder builder = RetryParam.newBuilder();
Methods of RetryParam.Builder:
Method  | 
        Description  | 
        Patameters  | 
    
|---|---|---|
withMaxRetryTimes(int maxRetryTimes)  | 
        Sets the max retry times on failure.Default value is 75.  | 
        maxRetryTimes: The maxinum times to retry.  | 
    
withInitialBackOffMs(long initialBackOffMs)  | 
        Sets the first time interval between two retries, units: millisecond. Default value is 10ms.  | 
        initialBackOffMs: Retry initial interval value in milliseconds.  | 
    
withMaxBackOffMs(long maxBackOffMs)  | 
        Sets the maximum time interval between two retries, units: millisecond. Default value is 3000ms.  | 
        maxBackOffMs: Retry maximum interval value in milliseconds.  | 
    
withBackOffMultiplier(int backOffMultiplier)  | 
        Sets multiplier to increase time interval after each retry. Default value is 3.  | 
        backOffMultiplier: The multiplier to increase time interval after each retry.  | 
    
withRetryOnRateLimie(boolean retryOnRateLimie)  | 
        Sets whether to retry when the returned error is rate limit. Default value is true.  | 
        retryOnRateLimit: Whether to retry when the returned error is rate limit.  | 
    
build()  | 
        Constructs a RetryParam object.  | 
        N/A  | 
    
The RetryParam.Builder.build() can throw the following exceptions:
- ParamException: error if the parameter is invalid.
 
Example
- Without timeout setting for RPC call:
 
import io.milvus.param.*;
import io.milvus.client.*;
ConnectParam connectParam = ConnectParam.newBuilder()
    .withHost("localhost")
    .withPort(19530)
    .withAuthorization("root", "Milvus")
    .build();
RetryParam retryParam = RetryParam.newBuilder()
        .withMaxRetryTimes(10)
        .build();
MilvusClient client = new MilvusServiceClient(connectParam).withRetry(retryParam);
ShowCollectionsParam param = ShowCollectionsParam.newBuilder().build()
R<ShowCollectionsResponse> response = client.showCollections(param);
client.close(1);
- With timeout setting for RPC call:
 
import io.milvus.param.*;
import io.milvus.client.*;
import java.util.concurrent.TimeUnit;
ConnectParam connectParam = ConnectParam.newBuilder()
    .withHost("localhost")
    .withPort(19530)
    .withAuthorization("root", "Milvus")
    .build();
MilvusClient client = new MilvusServiceClient(connectParam);
ShowCollectionsParam param = ShowCollectionsParam.newBuilder().build()
R<ShowCollectionsResponse> response = client.withTimeout(2, TimeUnit.SECONDS).showCollections(param);
client.close(1);