mysql读写分离(使用Atlas实现)

mysql读写分离(使用Atlas实现)mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品:Atlas,tddl,Mycat。  Mysql中间件研究(Atlas,cobar,TDDL)

大家好,又见面了,我是你们的朋友全栈君。

  mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品:Atlas,tddl,Mycat。
  mysql中间件研究原文:Mysql中间件研究(Atlas,cobar,TDDL)

  • 环境准备

    192.168.198.130(Atlas所在机器)
    MySQL所在机器,配置好主从复制
    192.168.198.131(Master)
    192.168.198.132(Slave)

    mysql主机允许Atlas远程连接

grant all on *.* to 'root'@'192.168.198.%' identified by '123456';
flush privileges;
  • 1、安装Atlas
rpm -vih https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm
#注意操作系统的版本,安装相应版本的Atlas。

  备用下载地址: http://pan.baidu.com/s/1kUnK3lH

  • 2、配置Atlas
cd /usr/local/mysql-proxy/  # Atlas的安装目录
vim conf/test.cnf           #很多选项用默认值即可

  中文注释,按需修改
  1)主库的ip和端口,可设置多项,用逗号分隔

proxy-backend-addresses = 192.168.198.131:3306

  2)(非必备,根据实际情况配置)从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔。如果想让主库也能分担读请求的话,只需要将主库信息加入到下面的配置项中。

#proxy-read-only-backend-addresses = 127.0.0.1:3305@1
proxy-read-only-backend-addresses = 192.168.198.132:3306

  3)(必备,根据实际情况配置)用户名与其对应的加密过的MySQL密码,密码使用安装路径 /bin目录下的加密程序encrypt加密,用户名与密码之间用冒号分隔。主从数据库上需要先创建该用户并设置密码(用户名和密码在主从数据库上要一致)。
  加密密码:

[root@localhost bin]# ./encrypt 123456

  配置密码

pwds = root:/iZxz+0GRoA=

  4)(必备,默认值即可)Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true

daemon = true

  5)(必备,默认值即可)Atlas监听的工作接口IP和端口,proxy-address = 0.0.0.0:1234代表客户端应该使用1234这个端口连接Atlas来发送SQL请求。

proxy-address = 0.0.0.0:1234

  6)(必备,默认值即可)Atlas监听的管理接口IP和端口,admin-address = 0.0.0.0:2345代表DBA应该使用2345这个端口连接Atlas来执行运维管理操作。

admin-address = 0.0.0.0:2345

  7)(可选项,可不设置)默认字符集,若不设置该项,则默认字符集为latin1

charset = utf8

  8)(必备,根据实际情况配置)SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,该模式下日志刷新是基于缓冲区的,当日志填满缓冲区后,才将日志信息刷到磁盘。REALTIME用于调试,代表记录SQL日志且实时写入磁盘,默认为OFF

sql-log = REALTIME

  日志路径在 /usr/local/mysql-proxy/log 下

  • 3、运行Atlas

      进入/usr/local/mysql-proxy/bin目录,执行下面的命令启动、重启或停止Atlas。

./mysql-proxyd test start      #启动Atlas。
  OK: MySQL-Proxy of test is started

./mysql-proxyd test restart    #重启Atlas。

./mysql-proxyd test stop       #停止Atlas。

  注意:
  (1). 运行文件是:mysql-proxyd(不是mysql-proxy)。
  (2). test是conf目录下配置文件的名字,也是配置文件里instance项的名字,三者需要统一。
  (3). 可以使用ps -ef | grep mysql-proxy查看Atlas是否已经启动或停止。

  • 4、连接Atlas

      客户端使用刚才配置的Atlas监听端口连接到Atlas代理服务

[root@localhost ~]# yum install mysql #按需安装mysql客户端
[root@localhost ~]# mysql -h192.168.198.130 -P1234 -uroot -p123456

  执行sql进行测试,可以通过日志看到写操作都在Master,读操作都连接到Slave了

[root@localhost ~]# more /usr/local/mysql-proxy/log/test.log 
2016-01-28 09:55:22: (message) proxy listening on port 0.0.0.0:1234
2016-01-28 09:55:22: (message) added read/write backend: 192.168.198.131:3306
2016-01-28 09:55:22: (message) added read-only backend: 192.168.198.132:3306

  连接到管理端口

[root@localhost ~]# mysql -h192.168.198.130 -P2345 -uuser -ppwd
mysql> select * from help;        #查看管理DB的各类命令
mysql> SELECT * FROM backends; #列出后台和他们的状态 +-------------+----------------------+-------+------+
| backend_ndx | address | state | type | +-------------+----------------------+-------+------+
|           1 | 192.168.198.131:3306 | up    | rw   |
| 2 | 192.168.198.132:3306 | up | ro | +-------------+----------------------+-------+------+
2 rows in set (0.00 sec)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142774.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • springboot项目启动原理_相关滤波器的基本原理

    springboot项目启动原理_相关滤波器的基本原理一、springboot启动原理及相关流程概览springboot是基于spring的新型的轻量级框架,最厉害的地方当属自动配置。那我们就可以根据启动流程和相关原理来看看,如何实现传奇的自动配置二、springboot的启动类入口用过springboot的技术人员很显而易见的两者之间的差别就是视觉上很直观的:springboot有自己独立的启动类(独立…

  • 2020十大正规现货交易平台排行榜

    2020十大正规现货交易平台排行榜对国内投资者而言,贵金属投资有内、外盘之分,因此者在选择平台,投资者应该从市场成熟度和产品优势出发,先明确自己在哪一个市场进行投资,再挑选那些信誉度极高、以客户利益为大前提、在行业内排名较前平台。其中,上海黄金交易所(SGE)属于国家级的交易场所,也是目前国内唯一能够同时兼营黄金和白银现货产品的交易所。如果投资者想通过排名靠前的平台参与上金所的产品,可以在国内的四大商业银行中作出选择。至于外盘产品方面,我们建议投资者选择香港排名靠前的平台。因为香港的正规平台都持有金银业贸易场(CGSE)颁发的牌照,而只

  • java 字符串中的每个单词的倒序输出「建议收藏」

    java 字符串中的每个单词的倒序输出「建议收藏」 面试题之–java 字符串中的每个单词的倒序输出1、输入一句英文,将句子倒序输出,忽略最后的标点。package shenjin;import java.util.Scanner;/** * 输入一句英文,将英文句子反转 * * @author LENOVO * */public class ReverseEnglish { public static vo…

  • Navicat 15 for MySQL激活码-激活码分享

    (Navicat 15 for MySQL激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • 华为服务器安装nas系统,云服务器搭建nas

    华为服务器安装nas系统,云服务器搭建nas云服务器搭建nas内容精选换一换在云服务器上搭建网站后,部分客户通过本地网络访问网站时出现偶发性无法访问的情况。确认客户使用的本地网络。若客户的本地网络是NAT网络(本地主机通过NAT功能使用公网IP地址访问弹性云服务器),可能会导致该问题。若客户的本地网络是NAT网络(本地主机通过NAT功能使用公网IP地址访问弹性云服务器),可能会导致该问题。执行以下命令,查看搭建网在云服务器上搭建网站后,部…

  • QT是什么?

    QT是什么?了解QT踏上开发这条路已经有好几年了,通过这些年的学习,自己也总结了一些基础的知识,在这里,跟大家分享下。QT是什么1.Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。2、Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObject

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号