1.确定 Ultipa 数据库地址
Ultipa 数据库地址支持单机和集群的配置,集群多个地址用逗号连接。
2.获取帐号密码
默认帐号密码都是 root
3.配置
UltipaConfiguration
是配置类,可以设置连接超时,一致性级别等。Ultipa Server 支持 ssl 和非加密方式的连接,使用 ssl 方式连接时需要设置 crtFile
和 overrideAuthority
。
配置项 | 有效值 | 说明 |
---|---|---|
username | / | 用户名 |
password | / | 密码 |
url | / | server 地址,集群需配置所有 server 的地址 |
timeout | >0 | 连接超时时间 |
consistency | true 、false |
一致性级别 |
type | insecure 、ssl |
连接方式,ssl 方式或非加密方式 |
crtFile | / | 证书路径 |
overrideAuthority | ultipa |
覆盖 'hostname' 来匹配服务器的证书 |
4.在代码中实例化 UltipaClientDriver
UltipaConfiguration configuration = UltipaConfiguration.config()
.username("root")
.password("root")
.url("192.168.1.1:60061");
UltipaClientDriver driver = new UltipaClientDriver(configuration);
Connection client = new DefaultConnection(driver, "default");
String reply = client.sayHello("Ultipa");
System.out.println(reply);
5.配置文件
SDK 提供了通过配置文件来连接 Ultipa Server,使用配置文件就不需要手动创建 UltipaConfiguration
,创建 Ultipa Driver 的时候会自动读取 ultipa.properties
文件的配置。
在工程项目的 classpath
中创建一个名为 'ultipa.properties' 的配置文件,填入以下连接所需配置:
ultipa.grpc.pool.conn.username=root
ultipa.grpc.pool.conn.password=root
ultipa.grpc.pool.conn.url=192.168.1.1:60061,192.168.1.2:60061,192.168.1.3:60061
ultipa.grpc.pool.conn.query.timeout=15
ultipa.grpc.pool.conn.consistency=false
ultipa.grpc.pool.conn.type=insecure
ultipa.grpc.pool.conn.crtFile=F:\\ultipa.crt
ultipa.grpc.pool.conn.overrideAuthority=ultipa
通过配置文件实例化 UltipaClientDriver
的代码示例:
UltipaClientDriver driver = new UltipaClientDriver();
Connection client = new DefaultConnection(driver);
String reply = client.sayHello("Ultipa");
System.out.println(reply);
6.连接池
UltipaClientDriver
默认使用 Apache Common-Pool 连接池,在使用创建 UltipaClientDriver
时可以指定连接池相应的配置信息:
UltipaConfiguration configuration = UltipaConfiguration.config()
.username("root")
.password("root")
.hosts("192.168.1.1:60061");
GenericObjectPoolConfig<ManagedChannel> poolConfig
= new GenericObjectPoolConfig<ManagedChannel>();
poolConfig.setMaxIdle(50);
poolConfig.setMinIdle(2);
poolConfig.setMaxTotal(200);
poolConfig.setMaxWaitMillis(-1);
UltipaClientDriver driver = new UltipaClientDriver(configuration, poolConfig);
Connection client = new DefaultConnection(driver, "default");
String reply = client.sayHello("Ultipa");
System.out.println(reply);
也可以在 'ultipa.properties' 中指定:
#最大空闲数
ultipa.grpc.pool.conn.maxIdle=50
#最小空闲数
ultipa.grpc.pool.conn.minIdle=20
#最大池对象总数
ultipa.grpc.pool.conn.maxTotal=2000
#逐出连接的最小空闲时间,默认1800000毫秒(30分钟)
ultipa.grpc.pool.conn.minEvictableIdleTimeMillis=1800000
#逐出扫描的时间间隔(毫秒),如果为负数,则不运行逐出线程
ultipa.grpc.pool.conn.timeBetweenEvictionRunsMillis=3600000
#在获取对象的时候检查有效性, 默认false
ultipa.grpc.pool.conn.testOnBorrow=true
#在归还对象的时候检查有效性, 默认false
ultipa.grpc.pool.conn.testOnReturn=false
#在空闲时检查有效性, 默认false
ultipa.grpc.pool.conn.testWhileIdle=false
#最大等待时间,默认的值为-1,表示无限等待。
ultipa.grpc.pool.conn.maxWaitMillis=-1
#是否启用后进先出, 默认true
ultipa.grpc.pool.conn.lifo=true
#连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
ultipa.grpc.pool.conn.blockWhenExhausted=true
#每次逐出检查时逐出的最大数目,默认3
ultipa.grpc.pool.conn.numTestsPerEvictionRun=3