【華為雲分散式資料庫中介軟體 DDM】sidecar負載均衡配置
目錄
福利發放
目前華為雲分散式資料庫中介軟體DDM有試用體驗活動,申請華為雲賬號後可以單擊如下圖片一鍵體驗:
產品介紹
華為雲分散式資料庫中介軟體(Distributed Database Middleware,簡稱DDM),專注於解決資料庫分散式擴充套件問題,突破了傳統資料庫的容量和效能瓶頸,實現海量資料高併發訪問。
配置方法
該負載均衡配置方式適合除了java語言以外的語言來訪問,如python 、php等。
-
解壓安裝程式檔案,以“mysql-router-8.0.11-linux-glibc2.12-x86-64bit.tar.gz”版本為例。
[[email protected] mytmp]# tar -xzvf mysql-router-8.0.11-linux-glibc2.12-x86-64bit.tar.gz
-
重新命名安裝資料夾。
[[email protected] mytmp]# mv mysql-router-8.0.11-linux-glibc2.12-x86-64bit /usr/local/mysqlrouter
-
建立日誌和配置相關檔案存放目錄。
[[email protected] mytmp]# cd /usr/local/mysqlrouter
[[email protected]
[[email protected] mysqlrouter]# mkdir etc
-
用模板檔案建立配置檔案。
[[email protected] mysqlrouter]#cp share/doc/mysqlrouter/sample_mysqlrouter.conf ./etc/mysqlrouter.conf
建議應用與MyRouter部署在同一節點,且參考xxx配置和使用Unix sockets連線,以增加安全性和提訪問效率。
-
使用Unix sockets
說明:
APP與Router部署在同一節點,基於安全和高效性考慮,可將繫結IP改為127.0.0.1(vi etc/mysqlrouter.conf)或註釋配置項bind_address
[DEFAULT] logging_folder = /usr/local/mysqlrouter/log/ plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter/ config_folder = /usr/local/mysqlrouter/etc/ runtime_folder = /usr/local/mysqlrouter/run/ [logger] level = INFO # 負載均衡配置 [routing:balancing] # 繫結的IP埠 # bind_address = 0.0.0.0:7002 bind_address = 127.0.0.1:7002 socket = /tmp/mysqlrouter.sock # 連線超時時間(秒) connect_timeout = 3 # 最大連線數 max_connections = 100 # 後端伺服器地址.預設讀進行輪詢 destinations = 192.168.4.235:5066,192.168.4.231:5066 # 路由策略 routing_strategy=round-robin [keepalive] interval = 60
其中,destinations從DDM管理控制檯,DDM例項詳情中的連線地址獲取。
連線例項如下:
[[email protected] ]# ./mysql -uddmtest -p -S /tmp/mysqlrouter.sock Enter password: mysql>
-
使用IP和埠
vi /usr/local/mysqlrouter/etc/mysqlrouter.conf[DEFAULT] logging_folder = /usr/local/mysqlrouter/log/ plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter/ config_folder = /usr/local/mysqlrouter/etc/ runtime_folder = /usr/local/mysqlrouter/run/ [logger] level = INFO # 負載均衡配置 [routing:balancing] # 繫結的IP地址 bind_address=0.0.0.0 # 監聽的埠 bind_port = 7002 # 連線超時時間(秒) connect_timeout = 3 # 最大連線數 max_connections = 100 # 後端伺服器地址.預設讀進行輪詢 destinations = 192.168.4.235:5066,192.168.4.231:5066 # 路由策略 routing_strategy=round-robin [keepalive] interval = 60
連線示例如下:
[[email protected] ]# ./mysql -uddmtest -h128.11.2.2 -P7002 -p Enter password: mysql>
其中128.11.2.2為Mysql Router所在IP。
-
-
啟動mysql router。
[[email protected] mysqlrouter]# cd bin
[[email protected] bin]# ./mysqlrouter -c /usr/local/mysqlrouter/etc/mysqlrouter.conf &
-
連線驗證。
python連線示例:
import mysql.connector import time import traceback # connection = mysql.connector.Connect(host="128.11.2.2", user="ddmtest", passwd="123456", port=7002) connection = mysql.connector.Connect(user="ddmtest", passwd="123456", unix_socket="/tmp/mysqlrouter.sock") cursor = connection.cursor() for num in range(0, 10): try: cursor.execute("use db_demo") cursor.execute("insert into t_demo(col1) values('haha');") cursor.execute("select * from t_demo; ") rows = cursor.fetchall() for row in rows: print row[1] time.sleep(0.1) except Exception, e: print traceback.print_exc() if not connection.is_connected(): connection.reconnect(10, 1) cursor.close() connection.close()