nginx clickhouse 反向代理

张映 发表于 2021-09-06

分类目录: clickhouse

标签:,

ReplicatedMergeTree分布式表引擎,同一分区下利用zookeeper进行同步数据。
Distributed有点类似于mysql merge存储引擎,比较适合读取。

那如果有四台机器,2个分片2个副本,怎么样才能写入快,读取快,并且写入的时候各个分片数据都比较均衡呢?

1,查看集群情况

testjian :] select cluster,shard_num,replica_num,host_name from system.clusters;

SELECT
    cluster,
    shard_num,
    replica_num,
    host_name
FROM system.clusters

┌─cluster────────────────┬─shard_num─┬─replica_num─┬─host_name──┐
│ clickhouse_test_netjoy │         1 │           1 │ 10.0.55.17 │
│ clickhouse_test_netjoy │         1 │           2 │ 10.0.10.23 │
│ clickhouse_test_netjoy │         2 │           1 │ 10.0.55.16 │
│ clickhouse_test_netjoy │         2 │           2 │ 10.0.10.24 │
└────────────────────────┴───────────┴─────────────┴────────────┘

4 rows in set. Elapsed: 0.001 sec.

分片号一样在同一分片,也就是说我只要写10.0.55.17 和10.0.55.16,或者写入10.0.10.23和10.0.10.24 ,四台机器都会有数据。

2,安装nginx-mod-stream

yum install nginx-mod-stream

3,配置nginx

stream{
  upstream clickhouse8123{
    server 10.0.55.17:8123 weight=1;
    server 10.0.55.16:8123 weight=1;
  }

  server{
    listen 8123;
    proxy_pass clickhouse;
  }

  upstream clickhouse9000{
    server 10.0.55.17:9000 weight=1;
    server 10.0.55.16:9000 weight=1;
  }

  server{
    listen 9000;
    proxy_pass clickhouse9000;
  }
}

注意,配置不能放到http中,配置不能放到http中,配置不能放到http中

如果不装nginx-mod-stream,进行配置时,会报以下错误。

nginx: [emerg] unknown directive "stream" in /etc/nginx/conf.d/clickhouse.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed

 

 



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/clickhouse/2530.html