linux系统Amoeba+MySL主从读写分离配置 javaweb项目配置连接数据源
使用amoeba依赖于java环境,首先要安装jdk、其次是配置数据库的主从复制,搭建amoeba配置读写的数据库服务
mysql配置主从可参考 http://blog.****.net/liqi_q/article/details/78542581
jdk安装可参考 http://blog.****.net/liqi_q/article/details/72963947
关于mysql主从配置就不单独细讲了,可以参考上面的文章去配置下,下面主要讲解amoeba的主要配置和安装
两台服务器 10.10.10.168(主 用来写入)、10.10.10.171(从 用来读取)我是把amoeba服务安装在了10.10.10.171这台服务器上
安装ameoba
https://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/
wget https://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/2.2.x/amoeba-mysql-binary-2.2.0.tar.gz
mkdir /data/server/installSoft/amoeba-mysql-binary
tar xvf amoeba-mysql-binary-2.2.0.tar.gz -C /data/server/installSoft/amoeba-mysql-binary
cd /data/server/installSoft/amoeba-mysql-binary/conf 查看配置文件
amoeba.xml是主配置文件,主要配置一些连接访问的IP地址和访问端口
dbServices.xml主要配置连接的数据库(读、写)服务器的IP+端口信息和连接池信息
运行amoeba服务 ./data/server/installSoft/amoeba-mysql-binary/bin/amoeba start & # 后台运行
网上查了一些资料:JDK7启动对xss参数有最小值要求,必须大于228才能启动JVM解决:设置
-Xss256k 即可解决
JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"
停止服务可以使用强制杀死进程 ps -elf |grep amoeba |grep -v grep |awk '{print $4}'|xargs kill -9
也可以使用 ./data/server/installSoft/amoeba-mysql-binary/bin/amoeba top命令
查看服务是否正常启动ps -elf |grep amoeba |grep -v grep
访问amoeba服务查看数据库连接情况做读写和查询服务测试
mysql -uroot -proot -h10.10.10.171 -P8066 (-u代表用户名、-p代表密码、-P代表端口、-h代表服务器IP地址)
成功进入mysql界面如下
下面针对连接上的数据库进行操作数据库操作数据
show databases; use ameoba_study;
下面是两个服务器数据库日志文件的log信息 tailf /data/logs/mysql_log/mysql.log
javaWeb项目配置连接 基于c3p0,具体数据源配置如下:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://10.10.10.171:8066/amoeba_study" />
<property name="user" value="root" />
<property name="password" value="root" />
<property name="minPoolSize" value="1" />
<property name="maxPoolSize" value="1" />
<property name="maxIdleTime" value="1800" />
<property name="acquireIncrement" value="1" />
<property name="maxStatements" value="0" />
<property name="initialPoolSize" value="1" />
<property name="idleConnectionTestPeriod" value="1800" />
<property name="acquireRetryAttempts" value="6" />
<property name="acquireRetryDelay" value="1000" />
<property name="breakAfterAcquireFailure" value="false" />
<property name="testConnectionOnCheckout" value="true" />
<property name="testConnectionOnCheckin" value="false" />
</bean>