it-swarm-vi.com

Mở rộng Joomla với cơ sở dữ liệu đọc chia tách

Tôi đã có một máy chủ mysql ở Bắc Mỹ (sử dụng Amazon RDS) và một bản sao đọc. Tôi cũng đã có một bản sao đọc cho một khu vực mới - Úc.

Máy chủ Úc bị chậm một cách tàn nhẫn do tính chất năng động của Joomla đọc ra máy chủ DB chính trong N <erica. Tôi đã cố gắng sử dụng proxy mysql cho việc này để phân chia việc đọc/ghi nhưng đó không phải là giải pháp lâu dài. Mysql proxy có vẻ như đã chết một cách hiệu quả.

Tôi có những lựa chọn nào khác?

9
Tom

Nếu bạn sử dụng phiên bản gần đây của PHP thì có lẽ bạn đang sử dụng trình điều khiển mys mysnd của php. http://us3.php.net/manual/en/book.mysqlnd. php

Mysqlnd có API plugin tùy chỉnh và có thể hoạt động theo cách tương tự là proxy mysql - ví dụ http://pecl.php.net/package/mysqlnd_ms là một plugin chia tách đọc và ghi và có phát hành chính thức gần đây 9/2013

Cũng lưu ý, Joomla luôn ghi vào bảng phiên. Sử dụng memcache hoặc apc chỉ lưu trữ dữ liệu phiên trong bộ đệm - không phải siêu dữ liệu phiên.

Bạn có thể tăng hiệu suất tương tự bằng cách bỏ bảng #_simes của mình và tạo lại nó bằng công cụ dữ liệu Bộ nhớ thay vì innodb hoặc myisam.

2
garyamort

Joomla (và các CMS tương tự khác) đã được phát triển cho kiến ​​trúc LAMP, với lưu trữ chung trong tâm trí. Ví dụ. Độ trễ thấp giữa máy chủ Web và Cơ sở dữ liệu.

Amazon RDS được thiết kế để mở rộng cơ sở dữ liệu quan hệ trong đám mây. Vì vậy, khi phân phối khu vực và dự phòng là quan trọng, dự kiến ​​sẽ có các khoản vay cao hơn.

Nếu bạn có yêu cầu cụ thể yêu cầu Amazon RDS, bạn có thể định cấu hình:

  • Joomla với một MySQL cục bộ để quản lý chung trang web (tài sản tĩnh, dễ nhân rộng)
  • Kết nối Amazon RDS, một kết nối dành riêng cho ứng dụng cho sự phát triển của bạn

Các tiện ích mở rộng của bên thứ ba, được phát triển với độ trễ thấp, sẽ không hoạt động với Amazon RDS.

2
Anibal

Mỗi trang được tạo bởi Joomla sẽ cần phải ghi vào bảng phiên.

Vì vậy, tôi sẽ đề nghị sử dụng memcache hoặc apc để quản lý phiên. Điều đó sẽ giúp bạn đạt được zero-write vào cơ sở dữ liệu, do đó đọc bản sao sẽ đủ cho hầu hết các trang.

1
Shyam

Một tùy chọn cải thiện tốc độ khác là đặt Nginx trước nó như một proxy ngược. Điều này sẽ làm giảm rất nhiều quyền truy cập cơ sở dữ liệu vì các trang phổ biến sẽ không bao giờ vào j Joomla và mysql Không thể tìm thấy cấu hình proxy nhưng đây là các thiết lập cơ sở

http://docs.j Joomla.org/Nginx

http://www.nginxtips.com/nginx-j Joomla-friendly-url /

https://stackoverflow.com/questions/23960359/how-to-get-nginx-proxy-caching-to-work-with-dynamic-content

https://stackoverflow.com/a/2655023/6096

0
tristanbailey