tin tức

Xây dựng ứng dụng php phân tán với gearman

22/02/2012 - Xem: 1789

Lập trình PHP thì có mấy cái khó .

- Phân tán

Làm thế nào để có 1 công việc A , có thể chia nhỏ và chạy phân tán trên các máy tính khác nhau ?

- Bất đồng bộ

Làm thế nào thực hiện một công việc A , nhưng không cần ngay kết quả trả về , công việc có thể tiến hành xong mới thông báo với lời gọi hàm ?

- Xử lý dữ liệu lớn

Làm thể nào để update vài triệu record ?

Tất nhiên mọi bài toán không thể chỉ dùng php là giải quyết được .

Ví dụ khi xây dựng một site kiểu này http://whois.cx/  . http://2name.com

Có khoảng 20 triệu domain cần cập nhật các thông số như : whois content .

Các site cần cập nhật định kỳ hoặc ngay lập tức (theo yêu cầu của người dùng) .

Mô hình hóa bài toàn với gearman như sau .

Cài đặt một gearman server . (Server sẽ đóng vài trò trung gian , phân phối thụ động các công việc)

Cài đặt các Worker (Công nhân ấy mà :D )

Các Worker cài đặt các hàm , ví dụ ở đây là hàm whois

Clone và chạy 1 loạt các worker giống nhau , trên các server , (mỗi server 20-30 worker) .

Mội khi cần update 1 domain (whois) thì client sẽ connect vào server và gửi yêu cầu whois .

Giống như chợ lao động , khi có một công việc , các công nhân anh nào nhanh tay nhận được công việc thì tiến hành làm ngay , rồi trả lại cho chủ (server – đốc công) rồi server trả lại cho client .

Dạo này khá bận nên không viết kỹ được .

Nhưng có thể tóm lược như sau :

- Gearman dùng hiệu quả hơn là dùng các giải pháp message queue thông thường , nếu dùng trên lamp .

- Nó đặc biệt hữu dụng khi dội dev chỉ thạo đúng php .

- Khi cần lập trình phân tán , job server , message queue … hãy nghĩ đến Gearman .

Gearman là là giải pháp bao gồm Server , client , và worker .

Client yêu cầu công việc , các worker làm và server làm trung gian (Má mỳ).

Xem thêm tài liệu :

http://gearman.org/

http://www.slideshare.net/datacharmer/gearman-for-beginners

http://www.slideshare.net/felixdv/high-gear-php-with-gearman

http://highscalability.com/product-gearman-open-source-message-queuing-system

http://vi.wikipedia.org/wiki/Gearman


(i-php.net)

Liên kết

Tin được quan tâm nhất

Quản cáo