Atlasによるデータベースの読み書き分離

2599 ワード

MySQLのエージェントで最も一般的なのはmysql-proxy、cobar、mycat、Atlasなどです.mysql-proxyは軽量な中間エージェントです.cobarはアリが提供した中間部品で、更新を停止した.mycatの前身はcobarで、活躍度が高い.Atlas奇虎360のオープンソース中間エージェントは、mysql-proxy 0.8.2に基づいて最適化され、いくつかの新しい機能特性を追加します.360内部ではAtlasが運営するMySQL事業を利用しており、1日に数十億件の読み書き要求が寄せられている.このまとめは主にAtlas読み書き分離の実現について述べる.
一、Atlasのインストール
wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm
rpm -ivh Atlas-2.2.1.el6.x86_64.rpm
cd /usr/local/mysql-proxy/conf
/usr/local/mysql-proxy/bin/encrypt 1qa.2ws.3ed. #      mysql  
vim  /usr/local/mysql-proxy/conf/test.cnf

[MySQL   ]

#        
admin-username = quizii

#       
admin-password = *******

#Atlas     MySQL   IP   ,     ,     (  )
proxy-backend-addresses = 10.26.173.153:3306

#Atlas     MySQL   IP   ,@         ,       ,       1,     ,     (  )
#proxy-read-only-backend-addresses = 10.27.16.160:3306@1

#            MySQL  ,    PREFIX/bin        encrypt  ,   user1 user2   ,       MySQL         !
user1:+ jKsgB3YAG8 =,user2:GS + tr4TPgqc =

#  Atlas     ,  true        ,  false      ,         false,       true,true       。
daemon = true

#  Atlas     ,  true Atlas       ,   monitor,   worker,monitor worker            ,  false   worker,  monitor,         false,       true,true       。
keepalive = true

#     ,             ,         
event-threads = 8

#    ,  message、warning、critical、error、debug    
log-level = message

#       
log-path = /usr/local/mysql-proxy/log

#SQL     ,    OFF、ON、REALTIME,OFF     SQL  ,ON    SQL  ,REALTIME    SQL         ,   OFF
#sql-log = OFF

#       。        ,            sql-log-slow(  :ms)     。             。
#sql-log-slow = 10

#    ,          Atlas      
#instance = test

#            IP   
proxy-address = 0.0.0.0:13470

#            IP   
admin-address = 0.0.0.0:23470

#    ,   person   ,mt   ,id     ,3     ,     ,     ,            
#tables = person.mt.id.3

#     ,              SET NAMES  
#charset = utf8

#    Atlas     IP,     IP,    IP ,     ,           IP  ,         IP  
#client-ips = 127.0.0.1, 192.168.1

#Atlas     LVS      IP(     IP),  LVS    client-ips       ,       
#lvs-ips = 192.168.1.1

######################################################
/usr/local/mysql-proxy/bin/mysql-proxyd test start
#    
mysql -h127.0.0.1 -P23470 -uquizii_user -pquizii2019
mysql> show variables like 'server_id';
       (     ,    serverid            )
#    ;     mysql   
echo "/usr/local/mysql-proxy/bin/mysql-proxyd test start" >>/etc/rc.d/rc.local
#       ,            ,             。
ps -ef|grep mysql