Tôi hiện đang tạo trang web cho một dự án xã hội ở Thụy Sĩ.Cách chia tỷ lệ ứng dụng PHP (máy chủ, mysql, memcache)
Và trước khi có tràn người dùng, tôi muốn chuẩn bị ứng dụng để mở rộng quy mô.
Tôi đã tự trả lời nhiều câu hỏi nhưng một số câu hỏi còn lại.
Tôi giải thích những gì tôi muốn làm.
Đầu tiên
tại beginnning, các ứng dụng sẽ chỉ có một máy chủ (thời gian ngắn) với DNS, PHP, Mysql, dữ liệu và memcache.
Second
Sau đó, tôi sẽ chia chúng thành hai
- DNS, Mysql, memcache
- dữ liệu, PHP
Thứ ba
Đây là vấn đề, tôi không biết cách thực hiện chính xác ở đây để giữ cho ứng dụng chạy tốt.
tôi có thể làm:
- Mặt trận: Load Balancer, memcache, DNS
- Web 1: PHP, DỮ LIỆU
- Web 2: PHP, DỮ LIỆU
- Mysql
Đây sẽ là lược đồ, tất cả các phiên PHP được lưu giữ trong DB.
NHƯNG, làm cách nào để đồng bộ hóa dữ liệu? Tôi có chạy Rsync để cập nhật cho họ hay không. Tôi có đặt chúng trên một đĩa riêng biệt (đĩa mạng) để chắc chắn không? nhưng trong trường hợp này, tôi có thể làm gì trong trường hợp tải lên của người dùng?
và nếu trang web có nhiều thành công hơn và chúng tôi phải tiến hành các cấu trúc lớn hơn, liệu nó có tạo ra một số thời gian chờ về cập nhật không?
hoặc nó sẽ là một điều tốt để đi trực tiếp đến các dịch vụ web của amazon?
một số thông tin Tôi sử dụng trình mã hóa làm Khung. Tôi sử dụng linux làm máy chủ web (bản phân phối không được chọn bây giờ, nhưng phải là Debian)
Cảm ơn trước cho câu trả lời của bạn.
http://stackoverflow.com/questions/189903/scaling-solutions-for-mysql-replication-clustering – zaf
http://highscalability.com/ – David
AWS cung cấp một số công cụ tuyệt vời để tách dịch vụ của bạn: phân phối nội dung và S3 cho các phần tử tĩnh, RDS và SimpleDB cho cơ sở dữ liệu phân tán và EC2 cho tài nguyên máy chủ có thể mở rộng. –