chproxy-安装部署(clickhouse官方列出的开源代理服务)

chproxy说明

Chproxy, is an http proxy and load balancer for ClickHouse database

环境

  • centos7.4
  • chproxy1.13
    本文设为1台chproxy代理3台clickhouse
    两个用户:只读用户(readonly),和读写用户(insert)。

下载安装

  • 可以下载源码,编译安装,也提供编译好二进制包,直接下载编译好的二进制即可
#下载地址
https://github.com/Vertamedia/chproxy/releases
  • 下载后解压,编写配置文件后,即可直接运行


    image
  • 编写配置文件 config.yaml
# 所有的chproxy配置参数参见https://github.com/Vertamedia/chproxy/blob/master/config/examples/combined.yml)
hack_me_please: false
log_debug: true
server:
  http:
      listen_addr: ":9090"
      allowed_networks: ["172.0.0.0/8","192.0.0.0/8"]
      read_timeout: 3m
param_groups:
  - name: "pz"
    params:
      - key: "max_query_size"
        value: "100000000"
      - key: "max_ast_elements"
        value: "10000000"
      - key: "max_expanded_ast_elements"
        value: "10000000"
users:
  - name: "insert"
    to_cluster: "writer-cluster"
    to_user: "default"
    params: "pz"
    allow_cors: true
    cache: "longterm"
  - name: "readonly"
    to_cluster: "readonly-cluster"
    to_user: "readonly"
    cache: "shotterm"
    params: "pz"
    allow_cors: true
    max_concurrent_queries: 200
    max_execution_time: 2m
clusters:
  - name: "writer-cluster"
    nodes: [
      "host1:8123",
      "host2:8123",
      "host3:8123"
    ]
    users:
     - name: "default"
       password: ""
  - name: "readonly-cluster"
    nodes: [
      "host1:8123",
      "host2:8123",
      "host3:8123"
    ]
    users:
     - name: "readonly"
       password: ""
caches:
  - name: "longterm"
    dir: "/mapbar/chproxy/cache/"
    max_size: 9500Mb
    expire: 130s
  - name: "shotterm"
    dir: "/mapbar/chproxy/cache-shot/"
    max_size: 9500Mb
    expire: 130s
Supervisor 管理chproxy进程
  • 编写配置文件chproxy.ini ,放入 /etc/supervisord.d/
[program:chproxy]
redirect_stderr=true
stdout_logfile=/var/log/supervisor/chproxy.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
command= /opt/software/chproxy/chproxy --config  /opt/software/chproxy/config.yaml
timeout = 60*60
user=root
autostart=true
autorestart=true
startsecs=10
startretries=1
stopasgroup=true
killasgroup=true
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8',LC_LANG='en_US.UTF-8'
  • 启动chproxy
supervisorctl reread    
supervisorctl update chproxy
  • 端口测试
echo "SELECT 1;" | curl -u insert: --data-binary @- 192.168.9.45:9090
echo "SELECT 1;" | curl -u readonly: --data-binary @- 192.168.9.44:9090
说明
  • 完成以上步骤,chproxy即安装完毕,使用clickhouse jdbc 通过proxy即可写入和读取clickhouse机器。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,938评论 0 5
  • 简介 ClickHouse是“战斗民族”俄罗斯搜索巨头Yandex公司开源的一个极具"战斗力"的实时数据分析数据库...
    猴子顶呱呱阅读 3,787评论 1 52
  • 记一次日志项目从日志采集,分布式协调,中间件消费,到数据库存储管理,到图形化界面展示 1 安装java环境 官网下...
    W朱珠W阅读 2,603评论 2 1
  • 集群规划 集群架构 其中 Distribute 是指创建分布式表的机器,在此文章中是将 Distribute 单独...
    李传亮阅读 21,917评论 11 13
  • 感恩今天去参加了读书会,以前没去过也没参加过类似的活动,觉得也没什么,可是今天如果之后才发现以前的认识是多么的错误...
    安奇_306e阅读 139评论 0 1