暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用CLup对数据库配置读写分离与负载均衡

中启乘数 2024-11-11
255

随着数据量的增长和用户需求的多样化,数据库性能和可用性有着不小的挑战。本文将使用CLup这一强大的数据库管理平台对数据库集群配置读写分离与负载均衡以优化数据库性能。

CLup数据库管理平台是专为PostgreSQL、PolarDB等数据库开发的管理平台,有着以下几方面的功能:

  • 快速便捷地创建和管理数据库实例与数据库集群,还包括快速搭建备库、切换集群内主备库、修改集群内主备库级联关系、修改数据库配置文件等功能。

  • 提供数据库集群的高可用功能,提供容灾保障,为您数据库保驾护航。

  • 数据库的备份与恢复功能,可以对数据库定时定点地进行物理备份与逻辑备份,并自动做好归档,可以在Web界面上便捷地恢复数据库。

  • 监控与告警功能,提供数据库和主机的实时监控,时刻监控数据库的正常运行,并提供告警功能,检测到异常后及时告警。

1.安装CLup

首先您需要其中一台主机上安装CLup管理平台,执行以下命令即可一键安装:

    wget -qO tmp/clup.sh --no-check-certificate https://get.csudata.com/csuinst/clup.sh && bash tmp/clup.sh clup install
    然后在需要数据库的主机上安装CLup-agent,执行以下命令一键安装:
      wget -qO tmp/clup.sh --no-check-certificate https://get.csudata.com/csuinst/clup.sh && bash tmp/clup.sh clup-agent install
      安装完成后,在浏览器打开server端地址的8090端口,进入登录界面:

      初始账号:admin

      初始密码:cstech

      2.创建PostgreSQL流复制集群

      HA集群->集群定义->创建集群->创建PostgreSQL流复制集群,填写相关信息即可快速创建一个PostgreSQL流复制集群。

      创建过程参考CLup官方文档:https://www.csudata.com/clup/manual/5.x/10226

      3.安装CSTLB模块

      在每台数据库主机上安装CSTLB模块:

      下载安装包:

        wget https://gitee.com/csudata_admin/clup-community/releases/download/4.2.2/cstlb2.0.0.x86_64.tar.xz
        解压后手动启动cstlb程序
          cd /opt
          tar xf cstlb2.0.0.x86_64.tar.xz
          cd cstlb
          export CSTLB_TOKEN=1e82ff78-d73f-11e7-8a50-60f81dd129c2
          nohup ./cstlb 2>&1 >cstlb.log &

          注意此处CSTLB_TOKEN可以为任意一个UUID,但必须和CLUP配置的cstlb_token参数同步。如图所示:

          启动后可使用netstat命令观察有无cstlb进程打开的8082端口。

          也可以把cstlb设置为开机自启。创建服务文件,内容如下:

            vi /etc/systemd/system/cstlb.service


            [Unit]
            Description=cstlb
            After=network.target
            [Service]
            Type=simple
            User=root
            Environment="CSTLB_TOKEN=1e82ff78-d73f-11e7-8a50-60f81dd129c2"
            ExecStart=/opt/cstlb/cstlb
            [Install]
            WantedBy=multi-user.target
            启动服务并设置开机启动
              systemctl daemon-reload
              systemctl start cstlb
              systemctl enable cstlb
              4.在CLup配置读写分离与负载均衡

              HA集群->集群定义->编辑,进入集群信息编辑界面,在此界面中配置集群的只读VIP、只读VIP所在主机、均衡器列表这三项配置:

              三项配置的说明如下:

              • 只读VIP:选择一个空的IP作为只读VIP

              • 只读VIP所在主机:集群第一次上线时,会把只读VIP加载到这台机器上。

              • 均衡器列表:需要配置多个,通常由集群的备库地址加CSTLB的8082管理端口组成。这将配置CSTLB读请求负载均衡到哪些备库上。

              配置好后,把数据库集群上线,此时查看只读VIP所在主机是否存在只读VIP:

              5.测试负载均衡:

              使用数据库连接工具连接只读VIP的5435端口(注意是访问CSTLB程序对接数据库的端口,默认5435端口)

                [pg14@clup ~]$ psql -h 10.197.165.202 -p 5435 -U postgres -d postgres
                Password for user postgres:
                psql (14.13)
                Type "help" for help.


                postgres=# select inet_server_addr();
                inet_server_addr
                ------------------
                10.197.165.114
                (1 row)
                新建一个psql连接
                  [pg14@clup ~]$ psql -h 10.197.165.202 -p 5435 -U postgres -d postgres
                  Password for user postgres:
                  psql (14.13)
                  Type "help" for help.


                  postgres=# select inet_server_addr();
                  inet_server_addr
                  ------------------
                  10.197.165.113
                  (1 row)

                  可以看到数据库的读连接分发到配置的两个备库里了,负载均衡已经正常工作。而写请求则可以访问集群VIP,读请求访问只读VIP就实现了读写分离。

                  PostgreSQL

                   

                  文章转载自中启乘数,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论