为什么开发了Chproxy

由于各种原因,ClickHouse 的最大执行时间、最大并发语句可能会超过 max_execution_timemax_concurrent_queries 的限制:
max_execution_time 可能会因为当前实现的缺陷而被超过。
max_concurrent_queries 只针对每个节点的限制。如果是在集群节点上,是没法限制集群整体的并发查询数量。

这种 “泄漏” 的限制可能会导致所有集群节点的高资源使用率。遇到这个问题后,我们不得不在我们的 ClickHouse 集群前维护 2 个不同的 http 代理 —— 一个用于在集群节点间分散 INSERT 操作,另一个用于发送 SELECT 到一个专用节点,在该节点再通过某种方式进行限制。这样很不健壮,管理起来也很不方便,所以我们开发了 Chproxy。:)

安装 配置

cd /usr/local/chproxy/ && tar -xvzf chproxy-linux-amd64-v1.14.0.tar.gz
cat << EOF > /usr/local/chproxy/config.yml
hack_me_please: false
log_debug: true
server:http:# chproxy监听的端口listen_addr: ":8321"# 允许访问的网段allowed_networks: ["172.0.0.0/8","192.0.0.0/8"]read_timeout: 3m
param_groups:# jdbc url参数配置- name: "test"params:- key: "max_query_size"value: "100000000"- key: "max_ast_elements"value: "10000000"- key: "max_expanded_ast_elements"value: "10000000"
users:# 用户信息[写入权限],使用此用户名和密码连接clickhouse- name: "insert"password: "123456"to_cluster: "write_cluster"to_user: "default"params: "test"allow_cors: truecache: "longterm"# 用户信息[只读权限],使用此用户名和密码连接clickhouse,如果没有可以不写- name: "readonly"password: "123456"to_cluster: "readonly-cluster"to_user: "readonly"cache: "shotterm"params: "test"allow_cors: truemax_concurrent_queries: 200max_execution_time: 2m
clusters:# 集群信息[写入权限],注意替换为你自己的clickhouse地址- name: "write_cluster"#clichouse集群地址,多个以逗号分隔nodes: ["mypc01:8123"]# clickhouse 中你配置的用户名和密码users:- name: "default"password: "123456"#clichouse集群地址[只读],多个以逗号分隔,如果没有可以不写- name: "readonly-cluster"nodes: ["mypc01:8123"]# clickhouse 中你配置的用户名和密码users:- name: "readonly"password: "123456"caches:# chproxy自己的缓存,默认是在磁盘上- name: "longterm"dir: "/data1/chproxy/cache/"max_size: 950Mbexpire: 30s- name: "shotterm"dir: "/data1/chproxy/cache-shot/"max_size: 950Mbexpire: 30s
EOF

启动

./chproxy --config  /usr/local/chproxy/config.yml

总结

  • chproxy就是为了实现clickhouse的负载均衡,比如insert用一个集群,select用另一个集群

参考

chproxy/README-CN.md at master · Vertamedia/chproxy
https://github.com/Vertamedia/chproxy/blob/master/README-CN.md

clickhouse代理Chproxy相关推荐

  1. 【clickhouse】docker 下 搭建 clickhouse 监控

    文章目录 1.概述 1.概述 转载:搭建clickhouse监控 原由与方案 为了更好地优化clickhouse的性能,需要对clickhouse集群进行监控.网上很多监控方案都是clickhouse ...

  2. 数仓选型必列入考虑的OLAP列式数据库ClickHouse(上)

    概述 定义 ClickHouse官网地址 https://clickhouse.com/ 最新版本22.4.5.9 ClickHouse官网文档地址 https://clickhouse.com/do ...

  3. clickhouse官方文档_clickhouse分析:chproxy使用

    点击上方蓝字关注我们 " 什么是chproxy?从名字就能了解ch代表clickhouse,proxy为代理,即专为clickhouse使用的代理.在clickhouse集群中,每一台机器都 ...

  4. ClickHouse学习教程

    概述 官网 a fast open-source OLAP database management system. It is column-oriented and allows to genera ...

  5. ClickHouse使用实践与规范

    导读: ClickHouse作为一款开源列式数据库管理系统(DBMS)近年来备受关注,主要用于数据分析(OLAP)领域.作者根据以往经验和遇到的问题,总结出一些基本的开发和使用规范,以供使用者参考. ...

  6. 唯品会翻牌ClickHouse后,实现百亿级数据自助分析

    本文根据王玉老师在[deeplus直播第266期]线上分享演讲内容整理而成.(文末有获取本期PPT&回放的方式,不要错过) 王玉 唯品会实时平台OLAP团队负责人 负责唯品会Presto.Cl ...

  7. 唯品会王玉:老司机教你如何调教Presto和ClickHouse,应对业务难题!

    分享嘉宾:王玉 唯品会 编辑整理:刘鹏鹏 滴滴出行 出品平台:DataFunTalk 导读:大家好,我是来自唯品会实时平台 OLAP 团队的王玉,主要负责唯品会这边 Presto.Kylin.Clic ...

  8. ClickHouse 在网易的实践

    导读: ClickHouse作为一款开源列式数据库管理系统(DBMS)近年来备受关注,主要用于数据分析(OLAP)领域.作者根据以往经验和遇到的问题,总结出一些基本的开发和使用规范,以供使用者参考. ...

  9. 趣头条基于Flink+ClickHouse的实时数据分析平台

    导读:趣头条一直致力于使用大数据分析指导业务发展.目前在实时化领域主要使用 Flink+ClickHouse 解决方案,覆盖场景包括实时数据报表.Adhoc 即时查询.事件分析.漏斗分析.留存分析等精 ...

最新文章

  1. 51nod 1222 最小公倍数计数【莫比乌斯反演】
  2. Python解释器有哪些?Python解释器种类
  3. 全国计算机等级考试题库二级C操作题100套(第30套)
  4. 【OpenCV 例程200篇】58. 非线性滤波—中值滤波
  5. 跟我一起读postgresql源码(十六)——Executor(查询执行模块之——control节点(下))
  6. .net项目开发工具最新动态
  7. 32位与64位应用程序速度分析
  8. OpenShift 4 之Service Mesh教程(4)- 跟踪访问后端服务超时
  9. seafile Windows MySQL_seafile4.3.1 + windows 2012 server +mysql 部署记录(3)
  10. lingo软件的基本使用方法_(PS软件)PHOTOSHOP基础操作和基本工具的使用
  11. Python的Numpy库简述
  12. 免费在线打字练习网站
  13. 物联网人工智能软件市场现状研究分析报告 -
  14. iOS内购实现及测试排查错误列表
  15. JAVA:实现Blowfish区块加密算法(附完整源码)
  16. 嵩天老师python爬虫笔记整理week3
  17. 街灯变成了平台,世界将会怎样
  18. keil配色(黑色背景)
  19. 孩子该不该学编程?学编程有用吗?
  20. 从PDF直接复制粘贴过来可以吗?其他软件的数据怎么导入Excel?

热门文章

  1. 四个变量的图表怎么做_EXCEL系列之基础图表总结
  2. linux yum坏了怎么办,yum坏掉的解决
  3. python樱桃小丸子_appium+python自动化框架搭建
  4. html 显示接口数据格式化,科技常识:html格式化输出JSON示例(测试接口)
  5. win7 html 设置成桌面,教你怎样设置专属自己的windows7动态桌面
  6. csgo躲猫猫模式显示服务器已满,csgo躲猫猫攻略大全
  7. 字符串当id用 转换成json对象
  8. java中table属性_div实现table功能
  9. 电脑开机卡住了怎么办_苹果电脑忘记开机密码怎么办?一段代码轻松解决
  10. oracle tbs_tmp,Oracle 12.2 设置LOCAL_TEMP_TABLESPACE