Page tree

VNG Cloud Help Center

Skip to end of metadata
Go to start of metadata

Khi tiến hành mở rộng qui mô theo chiều ngang (scale out), bạn sẽ phát sinh nhu cầu cân bằng tải cho các node RDS Instance. Ví dụ, với mô hình Master-Slave, bạn sẽ muốn các query Read được phân phối giữa các node Slave và chỉ các query Write mới được gửi đến node Master. Để thực hiện điều này, phần client trong Application của bạn cần được cấu hình rất đặc biệt và phức tạp.

Để đơn giản hóa việc này, bạn có thể triển khai thêm một (hoặc một vài) node cân bằng tải ở giữa lớp Application và lớp Database. Application của bạn chỉ cần cấu hình tới node cân bằng tải và không cần quan tâm việc phân phối các query tới các node Database. Khi có sự co dãn (scale out/in), bạn cũng không cần phải cấu hình lại Application.


Bài viết này sẽ hướng dẫn bạn sử dụng MaxScale, một database proxy/load balancing phổ biến.

MaxScale hiện đã có mặt trên vMarketPlace của VNG Cloud. Bạn có thể tiến hành khởi tạo một cách đơn giản và nhanh chóng tại đuờng link sau:

https://sdn-portal.vngcloud.vn/mp/app-detail.html?id=247&verId=285


Quá trình khởi tạo gần như khi bạn khởi tạo một vServer. Điều lưu ý duy nhất là MaxScale cần được khởi tạo chung Network (vVPC) với các node RDS Instance. Bài viết này giả sử bạn đang chạy RDS Instance MySQL/Mariadb mô hình Master-Slave Replication. Nếu chưa cấu hình replication, bạn tham khảo bài viết sau để thực hiện: Cấu hình MySQL Replication với RDS Instance.


Sau khi khởi tạo MaxScale thành công, bạn ssh vào vServer MaxScale với thông tin được gửi đến email. Sau khi setup ban đầu, bạn cấu hình MaxScale tại đuờng dẫn

/maxscale_maxscale_conf/maxscale.cnf


[maxscale]
threads=auto
admin_host=0.0.0.0
log_info=1
log_debug=1

[MaxAdmin]
type=service
router=cli

[MaxAdminUnixListener]
type=listener
service=MaxAdmin
protocol=maxscaled
socket=default

#Master
[server1]
type=server
address=10.0.128.5
port=3306
protocol=MariaDBBackend

#Slave
[server2]
type=server
address=10.0.128.6
port=3306
protocol=MariaDBBackend

[Replication-Monitor]
type=monitor
module=mariadbmon
servers=server1, server2
user=maxscale_admin
password=password
monitor_interval=3000ms

[Read-Write-Service]
type=service
router=readwritesplit
servers=server1, server2
user=maxscale_admin
password=password

[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
port=4006

trong đó:

- [server1], [server2] là thông tin các node RDS Instance của bạn bao gồm IP Address, Port tương ứng.

- [read-write-service] Read Write Service cho phép bạn phân tách các query read chỉ vào các node Slave và query Write chỉ vào node Master. Bạn thay đổi các thông tin servers, user/password để thực hiện query cho phù hợp.

- [read-write-listerner] cho phép bạn cấu hình port của MaxScale để Application connect đến. Lưu ý: bạn cần mở thêm Security Group Rule chiều Inbound cho port đã chọn để Application của bạn có thể connect được tới MaxScale.

Tham khảo thêm tại: https://mariadb.com/kb/en/mariadb-maxscale-23-readwritesplit.


Sau khi cấu hình xong, bạn start dịch vụ bằng lệnh

systemctl start maxscale.service

Để kiểm tra hoạt động của MaxScale, bạn có thể tail log tại: /maxscale_maxscale_log/maxscale.log

tail /maxscale_maxscale_log/maxscale.log


Để giám sát hoạt động của maxscale, bạn có thể dùng maxadmin:

docker exec -it maxscale maxadmin
MaxScale> list servers
MaxScale> show service Read-Write-Service


  • No labels