如何使用 HAProxy 测试 CockroachDB

安装 HAProxy

yum install haproxy 对 CentOS 7 有效。安装之后,即可使用 systemctl start haproxy 来启动服务了。但是先别急。

配置 HAProxy

在 /etc/haproxy/haproxy.cfg 里写入以下内容。

global # global 的内容基本固定,也比较好理解。
        log 127.0.0.1   local2
        maxconn 4096
        user haproxy
        group haproxy
        chroot /var/lib/haproxy
        daemon
        pidfile /var/run/haproxy.pid
        stats socket /var/run/haproxy.sock         # Make sock file for haproxy
        nbproc 40                                  # 启动 40 个进程并发转发,高版本可以用 nbthread,改为线程化。

defaults # 这部分都是抄的,option 不是很明白。
        log     global
        mode    http
        option  tcplog
        option  dontlognull
        retries 3
        option  redispatch
        maxconn 1024
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms

listen cdb_cluster 0.0.0.0:3030  # 真正的 proxy 名以及接受服务的地址。
## cdb balance leastconn - the cluster listening on port 3030.
        mode tcp
        balance leastconn  # 这个方法最适用于数据库,不要改。
        server cdb1 172.16.30.3:26257 check # check 似乎可以接一个反馈状态的端口,不接可能不生效,但是无所谓。
        server cdb2 172.16.30.3:26258 check
        server cdb3 172.16.30.3:26259 check
        server cdb4 172.16.30.3:26260 check

启动、连接

systemctl start haproxy 启动服务。

psql -Uroot -h127.0.0.1 -p3030 test 连接数据库。

CockroachDB 官方推荐

CockroachDB 官方给了自己推荐的配置。在这个配置里,它用了:

default
# TCP keep-alive on client side. Server already enables them.
    option              clitcpka

listen psql
    option httpchk GET /health?ready=1

这两个配置,第一个是让客户端 keep alive,感觉很有用。第二个是一个状态检查端口,我理解可能是确保服务可用再分发请求的一个选项,感觉也很有用。推荐加上。

Comments

comments powered by Disqus