linux系統Amoeba+MySL主從讀寫分離配置 javaweb專案配置連線資料來源
使用amoeba依賴於java環境,首先要安裝jdk、其次是配置資料庫的主從複製,搭建amoeba配置讀寫的資料庫服務
mysql配置主從可參考 http://blog.csdn.net/liqi_q/article/details/78542581
jdk安裝可參考 http://blog.csdn.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>