Welche ist besser zum Erstellen einer URL-Warteschlange in großen Webcrawler. Linked-List oder oder B-Baum?Erstellen einer URL-Warteschlange
Antwort
Wenn Sie die Warteschlange nicht durchsuchen müssen (und Warteschlangen müssen in der Regel nicht durchsucht werden), dann eine verknüpfte Liste.
Wenn die Reihenfolge wichtig ist (und Warteschlangen sind), dann eine verknüpfte Liste. Wenn Sie die Warteschlange suchen müssen, dann B-Baum.
Suche nicht benötigt, da es wie ein Stapel funktioniert, nur brauche ich eine nicht duplizierte Liste. Gibt es dafür eine spezielle verknüpfte Liste? – kar
Wenn Sie einen groß angelegten Crawler erstellen, möchten Sie wahrscheinlich so etwas wie eine AMQP-Nachrichtenwarteschlange verwenden, höchstwahrscheinlich RabbitMQ. RabbitMQ (und viele andere ähnliche MQs) werden mit einer ziemlich normalen Installation mehr als 100.000 Transaktionen pro Sekunde durchführen. Ich benutze es in meinem eigenen Spider/Crawler-Setup, und es funktioniert wie ein Zauber. Sicherlich viel einfacher als etwas Ähnliches von Grund auf zu bauen.
Übrigens verwenden die meisten fortgeschrittenen Hochgeschwindigkeits-Nachrichtenwarteschlangen intern eine verknüpfte Liste mit Zeigern sowohl auf den Kopf als auch auf den Schwanz. Manchmal verweisen Sie auch auf andere Stellen in der Warteschlange. Kommt wirklich auf den Funktionsumfang des MQ an. AMQP 1.0 definiert zum Beispiel das Konzept von "Links" und Links müssen ihre eigenen Zeiger in der Warteschlange halten. –
- 1. Erstellen einer Kopie einer Ansicht?
- 2. Erstellen einer Browser-Symbolleiste?
- 3. Erstellen einer Welt-Matrix
- 4. Erstellen einer Shell
- 5. Erstellen einer IE-Symbolleiste
- 6. Erstellen einer iPhone-Buchanwendung
- 7. Erstellen einer Proxy-Site
- 8. Erstellen einer guten Suchlösung
- 9. Erstellen einer indexerstellenden Klasse
- 10. Erstellen einer abgerundeten Ansicht
- 11. Erstellen einer dynamischen XML
- 12. Erstellen einer Django-Detailansicht
- 13. Erstellen einer Flatfile-Datenbank
- 14. Erstellen einer Django-Eigenschaft
- 15. Erstellen einer GUI (Swing)
- 16. Erstellen einer WiFi-Anwendung
- 17. Erstellen einer benutzerdefinierten Textzeichnungsansicht
- 18. Erstellen einer DOM-NodeList
- 19. Erstellen einer PDF-Tabelle
- 20. Erstellen einer Trigger-Dynamik
- 21. Erstellen einer Filmdatenbank
- 22. Erstellen einer ServiceDefinition.csdef
- 23. Erstellen einer Fortschrittsmarke "achievenmenet"
- 24. Erstellen einer Matrix?
- 25. Erstellen einer Prozedur MySQL
- 26. Erstellen einer Skriptsprache
- 27. Erstellen einer generischen Eigenschaft
- 28. Variablenvariable, Erstellen einer Arrayvariable
- 29. Erstellen einer Dokumentendatenbank
- 30. dynamisches Erstellen einer Liste
ja meine Warteschlange sollte mehr wie ein Stapel mit Push und Pop funktionieren. Aber da es Tausende von URLs verarbeiten wird, brauche ich eine sehr schnelle Implementierung. und ist es möglich, auf der verknüpften Liste zu FIFO zu gehen? – kar
Ja. Sie müssen einen Kopf- und einen Endzeiger verwenden. Am Schwanz einführen und vom Kopf abnehmen. –