Mysql

在測試或生產中使用 ScaleArc 的經驗?

  • August 10, 2017

有沒有人有使用ScaleArc的經驗?

我的 CTO 詢問了我對此的看法,但我沒有看到任何關於現實世界經驗的資訊。

哈哈哈哈真是巧合。我被要求自己評估它。

這是到目前為止所做的…

  • 我的主管安裝了它

  • 我創建了兩個 EC2 實例

  • 我在它們之間創建了主/從狀態

  • 我在 ScaleArc EC2 上創建集群

    • 我將 Master EC2 作為 ScaleArc Master 送出
    • 我將 Slave EC2 作為 ScaleArc Sl​​ave 送出
  • 我調整了集群上 3306 埠的安全選項

這是我執行的基本測試:我決定連接到 MySQL,不使用 Master EC2,也不使用 Slave EC2,而只使用 ScaleArc EC2。這是一個編寫測試連接性的腳本:

[redwards@lw-lts-155 ec2]$ cat master_select
EC2_DNS=<ScaleArc-EC2-DNS Hidden>
MYSQL_USER=<<Username Hidden>
MYSQL_PASS=<Password Hidden>
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
mysql -h${EC2_DNS} ${MYSQL_CONN} -ANe"show variables like 'hostname'"

結果如下:

[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-205-21-233 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-205-21-233 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-205-21-233 |
+----------+------------------+
[redwards@lw-lts-155 ec2]$ ./master_select
+----------+------------------+
| hostname | ip-10-242-47-176 |
+----------+------------------+

嘿,還不錯。10 次中有 7 次到達奴隸。

至少,這是人們想要的:只使用一個地址,連接到 MySQL,並讓一些流動的智能決定連接到哪個 DB 伺服器。這是所有狂熱的 MySQL Proxy 預言家的夢想:

無論他們是使用 LUA 實現 MySQL 代理還是以某種專有方式編寫腳本,最重要的是:ScaleArc 已經實現了這一點,並為我們所有人完成了繁重的工作(至少在 AWS 世界中)。

我會說:繼續玩它,如下所示:

  • 設置一主三從
  • 在 ScaleArc 中註冊 Master 和 Slave
  • 寫一些針對集群的基準
  • 使用提供的圖表,看看它是否智能地進行負載平衡

抱歉,我不是 ScaleArc 的專家,這不是你的完整答案。試駕它並踢一些輪胎。

更新 2013-01-14 16:32 EDT

我下載了 sakila 數據庫並將其載入到集群中。

wget http://downloads.mysql.com/docs/sakila-db.tar.gz

然後,我執行了這個查詢

SELECT actor_id FROM sakila.actor
ORDER BY MD5(CONCAT(last_name,first_name))

並將結果儲存在actor_id.txt

接下來,我建構了以下腳本以在測試平台中多次啟動 mysql..

EC2_DNS=<ScaleArc-EC2-DNS Hidden>
MYSQL_USER=<Username Hidden>
MYSQL_PASS=<Password Hidden>
MYSQL_CONN="-h${EC2_DNS} -u${MYSQL_USER} -p${MYSQL_PASS} -Dsakila"
NUMBER_OF_TESTBEDS=${1}
PARALLEL_TESTS=${2}
if [ "${1}" == "" ] ; then NUMBER_OF_TESTBEDS=1 ; fi
if [ "${2}" == "" ] ; then PARALLEL_TESTS=1     ; fi
ACTOR_LIST=""
for ACTOR_ID in `cat actor_id.txt`
do
       ACTOR_LIST="${ACTOR_LIST} ${ACTOR_ID}"
done
SQLPREFIX="SELECT F.film_id,F.title FROM actor A"
SQLPREFIX="${SQLPREFIX} INNER JOIN film_actor FA USING (actor_id)"
SQLPREFIX="${SQLPREFIX} INNER JOIN film F USING (film_id) WHERE A.actor_id="
for (( X = 1 ; X <= NUMBER_OF_TESTBEDS ; X++ ))
do
       echo -n "Launching TestBed #${X} ("
       for (( Y = 1 ; Y <= PARALLEL_TESTS ; Y++ ))
       do
               echo -n " ${Y}"
               for ACTOR_ID in `echo "${ACTOR_LIST}"`
               do
                       SQLSTMT="${SQLPREFIX}${ACTOR_ID}"
                       mysql ${MYSQL_CONN} -ANe"${SQLSTMT}" /dev/null 2>/dev/null &
               done
       done
       echo -n ")"
       wait
       echo
done

希望這可以幫助 !!!

引用自:https://dba.stackexchange.com/questions/32898