共计 5701 个字符,预计需要花费 15 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下 Amoeba 新版本 MYSQL 读写分离如何配置,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
官方简介
Amoeba 的中文意思是变型虫
主要解决:
bull; 降低 数据切分带来的复杂多数据库结构
bull; 提供切分规则并降低 数据切分规则 给应用带来的影响
bull; 降低 db 与客户端的连接数
bull; 读写分离
个人简单描述
可能你还没明白 Amoebla 这鬼东西主要干麻的呢!比方说 PHP 环境众所周知,PHP 没有数据连接池,如果 PHP 环境下 MYSQL 访问量大时会蹦掉,除非配置 Cluster 集群,而 Amoeba 就是在 PHP 程序和 MYSQL 之间,充当一个缓冲的作用。
准备工作
Server:192.168.1.208 #Amoeba
Server:192.168.1.11 #NDBD1(主)
Server:1921.68.1.13 #NDBD2(从)
注:11 和 13 两台服务器上,事先请安装好 MYSQL 单向步
另请安装 MYSQL 版本必须 5.1 以上,因为新版的 Amoeba2.10 对 5.1 以下版本不稳定。
结构图
Step 1: 配置 Amoeba192.168.2.8 读写分离
1:解压安装包
[root@Management down]# mkdir /usr/local/amoeba
[root@Management down]# tar -zxf amoeba-mysql-binary-2.1.0-RC5.tar.gz -C /usr/local/amoeba/
2:进入配置目录,浏览文件
[root@Management down]# cd /usr/local/amoeba/
[root@Management amoeba]# ll
total 88
drwxr-xr-x 2 root root 4096 Jul 26 11:57 benchmark
drwxr-xr-x 2 root root 4096 Feb 28 09:25 bin
-rw-r–r– 1 root root 3983 May 18 13:43 changelogs.txt
drwxr-xr-x 2 root root 4096 Jul 26 11:57 conf
drwxr-xr-x 3 root root 4096 Jul 26 11:57 lib
-rw-r–r– 1 root root 34520 May 18 13:43 LICENSE.txt
-rw-r–r– 1 root root 2031 May 18 13:43 README.html
3:进入主配置文件目录
[root@Management amoeba]# cd conf/
[root@Management conf]# ls
access_list.conf amoeba.xml dbServers.xml functionMap.xml log4j.xml ruleFunctionMap.xml
amoeba.dtd dbserver.dtd function.dtd log4j.dtd rule.dtd rule.xml
在这里我主要介绍配置 amoeba.xml、 dbServers.xml、log4j.xml 三个主要的配置文件,其它文件没有特殊需要默认就可以了夺
4:vi amoeba.xml 修改主配置文件
4.1)把默认端口 8066 改成 3306
property name= port 3066 /property
4.2)把默认连接用户名和密码改成自己的
property name= user sky /property
property name= password 123456 /property
4.3)把默认的客户端线程数,请求数及服务端回应数改成 200,300,300
property name= readThreadPoolSize 200 /property
!– proxy server client process thread size —
property name= clientSideThreadPoolSize 300 /property
!– mysql server data packet process thread size —
property name= serverSideThreadPoolSize 300 /property
4.4)把默认注释掉的读写分离选项,把注释去掉并 readpool 修改成 server2
!–
—
property name= writePool server1 /property
property name= readPool server2 /property
5:vi dbServers.xml 增加 SEVER2 模块,里面的连接用户名密码及地址都表示两台 MYSQL 的物理机器,192.168.1.11 和 192.168.1.13 另 SERVER1 是写,SERVER 是读
需要手动增加 SERVER2 代码如下:
dbServer name= abstractServer abstractive= true
factoryConfig >
property name= manager ${defaultManager} /property
property name= sendBufferSize 64 /property
property name= receiveBufferSize 128 /property
!– mysql port —
property name= port 3306 /property
!– mysql schema —
property name= schema test /property
!– mysql user —
property name= user root /property
!– mysql password
—
property name= password 123456 /property
/factoryConfig
poolConfig >
property name= maxActive 500 /property
property name= maxIdle 500 /property
property name= minIdle 10 /property
property name= minEvictableIdleTimeMillis 600000 /property
property name= timeBetweenEvictionRunsMillis 600000 /property
property name= testOnBorrow true /property
property name= testWhileIdle true /property
/poolConfig
/dbServer
dbServer name= server1 parent= abstractServer
factoryConfig
!– mysql ip —
property name= ipAddress 192.168.2.11 /property
/factoryConfig
/dbServer
最终改变成如下:
?xml version= 1.0 encoding= gbk ?
!DOCTYPE amoeba:dbServers SYSTEM dbserver.dtd
amoeba:dbServers xmlns:amoeba=
!–
Each dbServer needs to be configured into a Pool,
If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:
add attribute with name virtual = true in dbServer, but the configuration does not allow the element with name factoryConfig
such as multiPool dbServer
—
dbServer name= abstractServer abstractive= true
factoryConfig >
property name= manager ${defaultManager} /property
property name= sendBufferSize 64 /property
property name= receiveBufferSize 128 /property
!– mysql port —
property name= port 3306 /property
!– mysql schema —
property name= schema test /property
!– mysql user —
property name= user root /property
!– mysql password
—
property name= password 123456 /property
/factoryConfig
poolConfig >
property name= maxActive 500 /property
property name= maxIdle 500 /property
property name= minIdle 10 /property
property name= minEvictableIdleTimeMillis 600000 /property
property name= timeBetweenEvictionRunsMillis 600000 /property
property name= testOnBorrow true /property
property name= testWhileIdle true /property
/poolConfig
/dbServer
dbServer name= server1 parent= abstractServer
factoryConfig
!– mysql ip —
property name= ipAddress 192.168.2.11 /property
/factoryConfig
/dbServer
!– ######################## 把如上的内容复制到下面,来增加 SERVER2############################ —
dbServer name= abstractServer abstractive= true
factoryConfig >
property name= manager ${defaultManager} /property
property name= sendBufferSize 64 /property
property name= receiveBufferSize 128 /property
!– mysql port —
property name= port 3306 /property
!– mysql schema —
property name= schema test /property
!– mysql user —
property name= user root /property
property name= password 123456 /property
/factoryConfig
poolConfig >
property name= maxActive 500 /property
property name= maxIdle 500 /property
property name= minIdle 10 /property
property name= minEvictableIdleTimeMillis 600000 /property
property name= timeBetweenEvictionRunsMillis 600000 /property
property name= testOnBorrow true /property
property name= testWhileIdle true /property
/poolConfig
/dbServer
dbServer name= server2 parent= abstractServer
factoryConfig
!– mysql ip —
property name= ipAddress 192.168.2.13 /property
/factoryConfig
/dbServer
dbServer name= multiPool virtual= true
poolConfig >
!– Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA–
property name= loadbalance 1 /property
!– Separated by commas,such as: server1,server2,server1 —
property name= poolNames server1 /property
/poolConfig
/dbServer
/amoeba:dbServers
6:修改 log4j.xml 取消日志文件生成(太大了,磁盘很容易满)
param name= file value= ${amoeba.home}/logs/project.log /
改成
param name= file value= ![CDATA[${amoeba.home}/logs/project.log /dev/null]] /
7:性能优化,打开 bin/amoeba
DEFAULT_OPTS= -server -Xms256m -Xmx256m -Xss128k
改成
DEFAULT_OPTS= -server -Xms512m -Xmx512m -Xmn100m -Xss1204k
8:启动 amoeba
nohup /usr/local/amoeba/bin/amoeba start 2 1 /dev/null
看完了这篇文章,相信你对“Amoeba 新版本 MYSQL 读写分离如何配置”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!