对接ELB访问CloudTable ClickHouse集群
应用场景
对于访问量较大的业务,可以通过ELB设置相应的分配策略,将访问量均匀的分配到多个后端服务器处理。同时您还可以开启会话保持功能,保证同一个客户请求转发到同一个后端服务器,消除单点故障,从而提升访问效率。
此章节为您介绍对接ELB访问ClickHouse集群。将ClickHouse集群的Server节点IP添加到ELB后端服务器中,通过公网访问ClickHouse集群。了解ELB请参见ELB产品介绍。
操作流程
准备工作
- 已注册华为账号并开通华为云,具体请参见注册华为账号并开通华为云,且在使用CloudTable前检查账号状态,账号不能处于欠费或冻结状态。
- 已创建虚拟私有云和子网,参见创建虚拟私有云和子网。
- 已创建CloudTable ClickHouse集群。
步骤一:创建ELB
- 登录云管理控制台,在服务列表中选择“网络 > 弹性负载均衡ELB”。
- 在“负载均衡器”界面右上方单击“购买弹性负载均衡”。
- 在“购买弹性负载均衡”界面,配置以下参数,其他参数保持默认即可:
- 网络型(TCP/UDP)。
- 开启IP类型后端。
- 单击“立即购买”,确认配置信息,并单击“提交”。
- 创建完成后,在“负载均衡器”界面可看到新建的负载均衡器。查看并获取该负载均衡器的公网IP地址。
详细操作步骤请参考创建独享型ELB。
步骤三:获取CloudTable ClickHouse集群Server节点IP地址
- 登录表格存储服务控制台。
- 选择需要操作的ClickHouse集群,单击“集群名称”,进入集群详情页。
- 获取Server节点IP。
图1 获取Server节点IP。
步骤四:绑定ELB
- 登录ELB控制台。
- 单击“弹性负载均衡 > 我的ELB”,进入弹性负载均衡页面。
- 选择需要操作的ELB,单击操作列的“添加监听器”。
- 进入添加监听器配置页面,配置参数,请参见添加监听器。
- 前端协议TCP,前端端口8123/9000/8443/9440。
- 访问控制设置为“白名单”,防止引发安全问题。
- 添加后端服务器,选择“IP类型后端”。
- “IP类型后端IP”填写步骤三中获取的Server节点地址,“业务端口”填写8123/9000/8443/9440。
业务端口使用方法:后端端口和前端端口填写一致,例如前端端口“8123”,则后端端口填写“8123”。
- 8123:ClickHouse非安全集群的Http协议端口。
- 9000:ClickHouse非安全集群的TCP协议端口。
- 8443:ClickHouse安全集群的Https协议端口。
- 9440:ClickHouse安全集群的安全TCP安全端口。
- 监听器添加后,查看后端服务器是否添加成功。
- 进入“弹性负载均衡 > 负载均衡器 > 名称 > 监听器”页面。
- 单击监听器名称进入基本信息页签,单击“后端服务器组(监听器默认转发)”模块中“后端服务器组”右边的链接。
- 进入后端服务器页面,单击“后端服务器”页签,在IP类型后端处查看后端服务器。
图2 查看后端服务器
如果集群扩容,则需要更新ELB的后端服务器。
步骤五:使用ELB地址访问ClickHouse集群
- 集群安全组是否有添加ELB子网。
- 登录CloudTable服务控制台。
- 进入“集群管理 ”页面,单击集群名称,进入集群详情页面。
- 单击“网络配置”模块,安全组名称,进入安全组管理页面。
- 单击“安全组名称 > 入方向规则”,查看是否添加ELB子网网段。
- 如果添加ELB子网网段,则不需要重复添加。
- 如果没有添加ELB子网网段,则添加入方向规则,请参考添加安全组规则。
- 监听器创建成功后,使用ELB地址和前端协议端口访问ClickHouse集群。获取IP地址和协议端口:
- IP地址:单击“负载均衡器名称 > 基本信息”,在服务地址处获取。
图3 获取IP地址
- 协议端口:单击“负载均衡器名称 > 监听器”,在前端协议/端口处获取。
图4 获取协议端口
- IP地址:单击“负载均衡器名称 > 基本信息”,在服务地址处获取。
- 连接集群。对接ELB,不推荐使用客户端直连方式连接集群。
非安全集群连接命令。
echo 'SELECT 1' | curl -k 'http://IP:8123/?user=test_user&password=***' -d @-
安全集群连接命令。
echo 'SELECT 1' | curl -k 'https://IP:8443/?user=test_user&password=***' -d @-
表1 参数描述 参数
描述
select 1
执行的sql语句。
user
连接集群的用户名。
password
创集群时创建的密码。
IP
ELB IP地址。