导入并配置ClickHouse事务样例工程
本章节仅适用MRS 3.3.0及之后版本。
背景信息
获取ClickHouse开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。
前提条件
确保本地PC的时间与集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过FusionInsight Manager页面右下角查看。
操作场景
ClickHouse针对多个场景提供样例工程,帮助客户快速学习ClickHouse工程。
操作步骤
- 参考获取MRS应用开发样例工程,获取样例代码解压目录中“src”目录下的样例工程文件夹“clickhouse-examples”以及Maven相关配置。
- 在应用开发环境中,导入样例工程到IntelliJ IDEA开发环境。
- 工程导入完成后,修改样例工程的“conf”目录下的“clickhouse-example.properties”文件,根据实际环境信息修改相关参数。
loadBalancerIPList= sslUsed=false loadBalancerHttpPort=21425 loadBalancerHttpsPort=21426 CLICKHOUSE_SECURITY_ENABLED=true user= #密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 password= #是否使用事务 useTransaction=true #是自动提交还是手动提交:自动=true,手动=false,建议使用自动提交,由于Balance的session转发机制限制,当前不支持通过连接Balance执行手动提交SQL autoCommit=true clusterName=default_cluster databaseName=testdb tableName=testtb batchRows=10000 batchNum=10
表1 配置说明表 配置名称
默认值
含义
loadBalancerIPList
-
必填参数,配置为LoadBalance的IP列表。
- 登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,查看所有ClickHouseBalancer实例对应的业务IP地址。
- 多个IP地址使用逗号分隔,例如配置为“10.10.10.100,10.10.10.101”。
- 如果IP是IPV6地址,需转化,例如:192:168:0:0:0:0:158:2 > 192:168::158:2
sslUsed
false
是否启用ssl加密,普通模式集群建议配置为“false”。
loadBalancerHttpPort
21425
LoadBalance的HTTP端口。若sslUsed配置为false,则此参数不允许为空。
登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,单击对应的ClickHouseBalancer实例,选择“实例配置 > 全部配置”,搜索“lb_http_port”并获取其参数值,默认为21425。
loadBalancerHttpsPort
21426
LoadBalance的HTTPS端口,若sslUsed配置为true,则此参数不允许为空。
登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,单击对应的ClickHouseBalancer实例,选择“实例配置 > 全部配置”,搜索“lb_https_port”并获取其参数值,默认为21426。
CLICKHOUSE_SECURITY_ENABLED
true
ClickHouse安全模式开关,普通模式集群时该参数填写为false。
user
无默认值
表1中已准备好的开发用户。
password
无默认值
开发用户对应的密码。
密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。
说明:如果是在Manager上新建的用户,首次使用前需要修改初始密码。
useTransaction
true
是否使用事务,参数值修改为true。
如果配置为true,则sql语句使用事务。
autoCommit
true
自动提交还是手动提交。
true:自动提交,相当于使用隐式事务。
false:手动提交。
clusterName
default_cluster
ClickHouse逻辑集群名称,保持默认值。
databaseName
testdb
样例代码工程中需要创建的数据库名称,可以根据实际情况修改。
tableName
testtb
样例代码工程中需要创建的表名称,可以根据实际情况修改。
batchRows
10000
一个批次写入数据的条数。
batchNum
10
写入数据的总批次。
ClickHouse提供了基于Loadbalance部署架构,可以将用户访问流量自动分发到多台后端节点,扩展系统对外的服务能力,实现更高水平的应用容错。客户端应用请求集群时,使用基于Nginx的ClickHouseBalancer控制节点来进行流量分发,无论集群写入的负载、读的负载以及应用接入的高可用性都具备了有力的保障。