Thường xuyên hơn không, các bản sao được triển khai để có tính khả dụng cao và / hoặc mở rộng quy mô đọc. Nếu bản chính không thành công, một trong các bản sao được thăng cấp thành bản chính. Nếu có nhiều lượt đọc và hầu như luôn luôn như vậy, các bản sao sẽ được thêm vào để mở rộng quy mô. Lý tưởng nhất là các lần ghi được chuyển đến bản chính và các lần đọc được cân bằng tải trên các bản sao. Đó là cách hiệu quả nhất để sử dụng các tài nguyên có sẵn.
RDS, Azure Database và Cloud SQL đều cung cấp cho bạn các điểm cuối riêng lẻ cho các phiên bản cơ sở dữ liệu, một cho điểm chính và một cho mỗi bản sao. Nếu bạn muốn đọc số dư tải, bạn phải tạo nhiều kết nối (một kết nối cho mỗi bản sao) và tự thực hiện. Nếu bạn muốn thực thi ghi trên bản chính và đọc trên bản sao (tức là tách đọc / ghi), bạn phải tạo một kết nối bổ sung với kết nối chính và tự thực hiện.
Không vui. Không thú vị.
Với MaxScale, một proxy cơ sở dữ liệu nâng cao cho Máy chủ doanh nghiệp MariaDB, bạn không phải lo lắng về điều đó. MaxScale thực hiện cân bằng tải đọc và phân tách đọc / ghi cho bạn - đó là những gì chúng tôi gọi là định tuyến truy vấn minh bạch. Các nhà phát triển không cần phải lo lắng về cơ sở hạ tầng vật lý (tức là cấu trúc liên kết cơ sở dữ liệu). Tại sao họ phải? Có thể có một bản sao, có thể có năm. Có thể các DBA đã thêm một bản sao vào đêm qua, có thể họ đã loại bỏ hai. Nó không thành vấn đề và các ứng dụng không cần phải tính đến nó.
Đó là điều tuyệt vời về MaxScale. Nó trừu tượng hóa cơ sở hạ tầng cơ sở dữ liệu cơ bản và cấu trúc liên kết triển khai. Có thể đó là một cơ sở dữ liệu độc lập. Có thể đó là một cơ sở dữ liệu sao chép. Có thể đó là một cơ sở dữ liệu được phân nhóm. Ai quan tâm? Đặc biệt là trên đám mây.
Vì vậy, tại sao bạn có thể tận dụng lợi thế của định tuyến truy vấn minh bạch tại chỗ, nhưng không phải trên đám mây? Vì RDS, Cơ sở dữ liệu Azure và Google Cloud SQL không có MaxScale. Giá như có một DBaaS với MaxScale và định tuyến truy vấn minh bạch. Giá như chúng ta có thể bay cao hơn với đám mây MariaDB tối tân. Chờ đã, xin chào SkySQL!
Có, chúng tôi đã đưa sức mạnh của MaxScale vào SkySQL.
Sau khi bạn tạo cơ sở dữ liệu sao chép, bạn sẽ được cung cấp một tên máy chủ và hai cổng, một cổng đọc và một cổng đọc / ghi. Bạn chỉ cần cổng đọc / ghi vì nó cũng đọc cân bằng tải. Tuy nhiên, nếu bạn có các ứng dụng chỉ đọc (ví dụ:BI / báo cáo), cổng đọc có thể hữu ích. Dễ dàng.
Bạn có thể tự hỏi mình, có phải Shane vừa chia sẻ tên máy chủ và cổng cơ sở dữ liệu của anh ấy không?
Tại sao có, vâng tôi đã làm. Theo mặc định, cơ sở dữ liệu SkySQL không thể truy cập được. Bạn phải đưa địa chỉ IP (hoặc dải) vào danh sách trắng của bất kỳ máy khách và máy chủ ứng dụng nào yêu cầu quyền truy cập. Và địa chỉ IP duy nhất tôi đã đưa vào danh sách trắng là địa chỉ dành cho máy tính xách tay của tôi ở nhà. Chúc may mắn. 😉
Quay lại chủ đề hiện tại, bạn sẽ thấy hai cổng:5001 để phân tách đọc / ghi (ghi vào chính, đọc cân bằng tải trên các bản sao) và 5002 cho cân bằng tải chỉ đọc. Cơ sở dữ liệu của tôi có hai bản sao, nhưng các ứng dụng kết nối với nó không phải lo lắng về nó. Tôi có thể thêm hai bản sao nữa vào ngày mai và không cần thay đổi ứng dụng nào để tận dụng chúng. MaxScale sẽ đơn giản và tự động bắt đầu định tuyến các lần đọc cho chúng.
Và nếu chính không thành công, không có vấn đề gì lớn. MaxScale sẽ tự động thúc đẩy một bản sao và bắt đầu định tuyến ghi vào nó (và cân bằng tải đọc các bản sao còn lại). Nếu bạn đã từng gặp phải thời gian chuyển đổi dự phòng không thể đoán trước của RDS, bạn biết lý do tại sao. Chuyển đổi dự phòng RDS dựa trên sự lan truyền DNS, vì vậy bạn không cần phải thay đổi tên máy chủ của điểm cuối. Nó gần như minh bạch, nhưng cần có thời gian. Mặt khác, với MaxScale, nó có thể thực hiện ngay lập tức - không cần lan truyền DNS.
Nhưng, tôi không muốn lạc đề quá xa. Tôi có một kế hoạch khác trong tâm trí cho HA. Hãy theo dõi.