1 tuan, 2 hamba, di bawah mesin maya ubuntu, konfigurasi adalah seperti berikut:
master 的 config.json
:
{ "taskdb": "mysql+taskdb://pyspider:pyspider-pass@192.168.209.128:3306/taskdb", "projectdb": "mysql+projectdb://pyspider:pyspider-pass@192.168.209.128:3306/projectdb", "resultdb": "mysql+resultdb://pyspider:pyspider-pass@192.168.209.128:3306/resultdb", "message_queue": "redis://192.168.209.128:6379/db", "phantomjs-proxy": "192.168.209.128:25555", "scheduler":{ "xmlrpc-host":"0.0.0.0", "delete-time":10}, "webui": { "port": 5555, "username": "", "password": "", "need-auth": false} }
Jalankan pada hos
/usr/local/bin/pyspider -c /home/pu/pyspider/conf.json schedule
/usr/local/bin/pyspider -c /home/pu/pyspider/conf.json webui
/usr/local/ bin/pyspider -c /home/pu/pyspider/conf.json phantomjs
slave 的 config.json
:
{ "taskdb": "mysql+taskdb://pyspider:pyspider-pass@192.168.209.128:3306/taskdb", "projectdb": "mysql+projectdb://pyspider:pyspider-pass@192.168.209.128:3306/projectdb", "resultdb": "mysql+resultdb://pyspider:pyspider-pass@192.168.209.128:3306/resultdb", "message_queue": "redis://192.168.209.128:6379/db", "phantomjs-proxy": "192.168.209.128:25555", "fetcher":{"xmlrpc-host":"192.168.209.128"} }
Lari dua orang budak
/usr/local/bin/pyspider -c /home/pu/pyspider/conf.json fetcher
/usr/local/bin/pyspider -c /home/pu/pyspider/conf.json processor
/usr/local/ bin/pyspider -c /home/pu/pyspider/conf.json result_worker
Tiga terminal
Saya menjalankannya dari baris arahan dahulu. Saya belum menggunakan Penyelia untuk mengurus proses. Saya mahu menggunakan ini untuk mengurus proses selepas penyahpepijatan yang diedarkan berjaya. Tetapi ia adalah pelik. Program crawler boleh berjalan dengan lancar, tetapi masa yang diambil untuk menjalankannya pada satu mesin adalah sama seperti semasa menjalankan tiga mesin bersama-sama Ia hanya beberapa saat berbeza.
Saya melihat pada output maklumat oleh terminal Ia adalah bahawa URL yang diekstrak oleh dua hamba tidak berulang, tetapi masa dipisahkan dengan selang Sebagai contoh, slave1 berjalan selama 4 saat, dan kemudian slave2 berjalan selama 3 saat. Mereka tidak selari. Terdapat perintah, sangat pelik! Mungkinkah dalam jadual, tugasan diambil satu persatu dan tidak boleh diambil serentak?
Kawal kelajuan dalam konsol. Tidak kira sama ada anda diedarkan atau tidak, selagi kelajuan ditetapkan kepada sama, ia akan mengambil masa yang sama. Hanya apabila sumber perkakasan tidak mencukupi (atau apabila perkakasan mengalami kesesakan dan tidak dapat mencapai kelajuan yang anda tetapkan) sistem yang diedarkan akan berjalan lebih pantas? Saya faham itu secara peribadi