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
Thanks,
Trả lờiXóaMình có một câu hỏi là các giải pháp mở rộng thế này mà các job servers (nhận yêu cầu từ clients) bị die hết thì ứng dụng cũng die theo luôn đúng không?
PS: Mình thấy nếu viết một chuỗi bài về các kỹ năng / technologies để mở rộng quy mô của ứng dụng PHP như thế này sẽ rất là hay. Ví dụ như so sánh giữa các phương pháp sử dụng message queue, memcached và gearman... Hay cơ chế replication của các phương pháp trên khác nhau như thế nào...
Nhìn chung đây là những kiến thức này khá chuyên sâu (1 loạt bài viết gần đây của tớ) .
Trả lờiXóaCho nên thường thì ít người làm , ít người quan tâm , mình đang làm nên cứ note vào thôi .
Xét trên 2 nền tảng Java & PHP thì Gearman có dễ hơn so với ActiveMQ (JMS) không đại ka? Ý em là về số lượng dòng code, thư viện hỗ trợ, dễ cài đặt ...
Trả lờiXóaActiveMQ (hay các jms khác) Nói chung chỉ làm một việc là làm trung gian . Với 2 mô hình chính pà pub-sub và p2p .
Trả lờiXóaNhưng Gearman không hẳn là một queue . Nó là một jobs server - manager thì đúng hơn .
Còn về khía cạnh sử dụng thì đối với lập trình viên php , dùng Gearman tốn rất ít công tìm hiểu , call hàm là call , không quan tâm đến thằng worker nào sẽ làm , chỉ quan tâm đến dữ liệu trả về .
Gearman khá hay, nhưng mình tìm hiểu thì ko có PHP Extension cho window, có giải pháp nào khác không nhỉ?
Trả lờiXóaQuan điểm của mình thì không chơi với win .
Trả lờiXóaNhưng bạn thử chạy grearman trên cygwin xem .
Mình cũng đang nghiên cứu cái này, setup rồi nhưng chỉ chạy được cái code example cho worker, còn client thì nó báo lỗi :)
Trả lờiXóaMình thấy chỉ chạy được code trên console, còn gõ trên trình duyệt thì nó đơ luôn, vậy rốt cuộc cái này nó hoạt động ra sao vậy
Really cool site! Thank you so much for taking your time to post this!
Trả lờiXóaThe Zune concentrates on being a Portable Media Player. Not a web browser. Not a game machine. Maybe in the future it'll do even better in those areas, but for now it's a fantastic way to organize and listen to your music and videos, and is without peer in that regard. The iPod's strengths are its web browsing and apps. If those sound more compelling, perhaps it is your best choice.
Trả lờiXóaApple now has Rhapsody as an app, which is a great start, but it is currently hampered by the inability to store locally on your iPod, and has a dismal 64kbps bit rate. If this changes, then it will somewhat negate this advantage for the Zune, but the 10 songs per month will still be a big plus in Zune Pass' favor.
Trả lờiXóaLlfn3m yvqzbujlexcs, [url=http://vjjobcyxsdgx.com/]vjjobcyxsdgx[/url], [link=http://drkiwqkecraw.com/]drkiwqkecraw[/link], http://noyheougphor.com/
Trả lờiXóa