VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

其它功能与优化

读写分离&负载均衡

Vastbase G100数据库使用流复制可搭建主从架构,即主机可读可写,从机只读。

假设应用端可支持读写分离,即为读写操作分别构建不同的连接或连接池。假设使用连接池,则可以创建一个读写连接池,一个只读连接池,当写操作时使用读写连接池,读操作时使用只读连接池。

Vastbase G100数据库JDBC驱动内置了一个简单的负载均衡功能,JDBC驱动在连接到数据库服务端后,会对测试数据库是否符合targetServerType要求,如符合要求则会进行sql请求。

当正在执行sql语句的数据库节点发生当宕机,使用JDBC驱动的客户端会接收到错误”FATAL:terminating connection due to administrator command”,JDBC驱动不会对sql命令进行二次分发。

参数说明

参考连接数据库章节中targetServerType和loadBalanceHosts的参数设置说明。

样例

写操作

写操作连接或连接池的JDBC连接字符串。

jdbc:postgresql://node1,node2,node3/accounting?targetServerType=master

读操作

读操连接或连接池的JDBC连接字符串。

jdbc:postgresql://node1,node2,node3/accounting?targetServerType=preferSlave&loadBalanceHosts=true

Socket相关

Unix Domain Socket是进程间通讯的一种方式,适用于同一台服务器内不同进程的通讯。Vastbase G100支持使用Unix Domain Socket访问数据库,Java应用希望以Unix Domain Socket访问Vastbase G100数据库,需要添加新的类库支持。

参数说明

参考连接数据库章节中socketFactory和socketFactoryArg的参数设置说明。

样例

使用maven添加相关类库支持

<dependency>  
<groupId>no.fiken.oss.junixsocket</groupId>  
<artifactId>junixsocket-common</artifactId>  
<version>1.0.2</version>  
</dependency>  
<dependency>  
<groupId>no.fiken.oss.junixsocket</groupId>  
<artifactId>junixsocket-native-common</artifactId>  
<version>1.0.2</version>  
</dependency>  

JDBC连接字符串添加参数:

jdbc:postgresql://host:port/database?socketFactory=org.newsclub.net.unix.socketfactory.PostgresqlAFUNIXSocketFactory&socketFactoryArg=[path-to-the-unix-socket]