zoukankan      html  css  js  c++  java
  • MySQL中间件之ProxySQL(1):简介和安装

    返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html

    1.ProxySQL简介

    之前的文章里,介绍了一个MySQL的中间件:MySQL Router。详细内容参见:MySQL Router实现MySQL的读写分离

    这里准备用一个系列来详细介绍一个能实实在在用在生产环境的MySQL中间件:ProxySQL。它有两个版本:官方版和percona版,percona版是在官方版的基础上修改的,添加了几个比较实用的工具。在我这个系列文章中,我使用的是官方版。

    官方站点:官方站点
    官方github:官方github
    官方手册:官方手册
    percona ProxySQL手册:percona ProxySQL手册

    我已经将ProxySQL的官方手册进行了翻译,请参见我的github wiki:ProxySQL中文手册 。我也将翻译版的markdown文件导出为了pdf,各位可下载:ProxySQL中文手册.pdf

    ProxySQL是用C++语言开发的,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能,包括:

    • 最基本的读/写分离,且方式有多种。
    • 可定制基于用户、基于schema、基于语句的规则对SQL语句进行路由。换句话说,规则很灵活。基于schema和与语句级的规则,可以实现简单的sharding。
    • 可缓存查询结果。虽然ProxySQL的缓存策略比较简陋,但实现了基本的缓存功能,绝大多数时候也够用了。此外,作者已经打算实现更丰富的缓存策略。
    • 监控后端节点。ProxySQL可以监控后端节点的多个指标,包括:ProxySQL和后端的心跳信息,后端节点的read-only/read-write,slave和master的数据同步延迟性(replication lag)。

    2.安装ProxySQL

    以 CentOS 的 rpm 包为例。

    cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
    [proxysql_repo]
    name= ProxySQL
    baseurl=http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/$releasever
    gpgcheck=1
    gpgkey=http://repo.proxysql.com/ProxySQL/repo_pub_key
    EOF
    

    然后直接安装即可。

    yum -y install proxysql
    

    或者直接去github上下载rpm包或源码包: https://github.com/sysown/proxysql/releases/tag/v1.4.9

    默认情况下,rpm安装的ProxySQL只提供了SysV风格的服务脚本/etc/init.d/proxysql。所以,可通过该脚本管理ProxySQL的启动、停止等功能。

    [root@xuexi ~]# /etc/init.d/proxysql --help
    Usage: ProxySQL {start|stop|status|reload|restart|initial}
    

    例如:

    service proxysql start   # 启动proxysql
    service proxysql stop    # 停止proxysql
    service proxysql status  # 查看proxysql状态
    

    如果想要通过systemd管理ProxySQL,可在/usr/lib/systemd/system/proxysql.service中写入如下内容:

    [root@xuexi ~]# vim /usr/lib/systemd/system/proxysql.service
    [Unit]
    Description=High Performance Advanced Proxy for MySQL
    After=network.target
    
    [Service]
    Type=simple
    User=mysql
    Group=mysql
    PermissionsStartOnly=true
    LimitNOFILE=102400
    LimitCORE=1073741824
    ExecStartPre=/bin/mkdir -p /var/lib/proxysql
    ExecStartPre=/bin/chown mysql:mysql -R /var/lib/proxysql /etc/proxysql.cnf
    ExecStart=/usr/bin/proxysql -f
    Restart=always
    

    一般来说,ProxySQL很少停止或重启,因为绝大多数配置都可以在线修改。

  • 相关阅读:
    关于slot标签的使用
    vue组件
    template和component的理解(待更正)
    input 的属性autocomplete
    关于render: h => h(App)和components: { App }的区别
    关于vue的简单知识
    获取页面跳转携带的参数
    关于跨域的简单想法(此想法是错误的,特此备注)
    关于jq建立类似与双向绑定的函数
    关于jq将一个页面引入另一个页面,类似与组件化的解决方案
  • 原文地址:https://www.cnblogs.com/f-ck-need-u/p/9278818.html
Copyright © 2011-2022 走看看