Yacy-Cluster

Ideen und Vorschläge sind willkommen.

Yacy-Cluster

Beitragvon Vega » Do Okt 22, 2009 9:51 am

Hallo alle miteinander,

beim experimentieren mit Yacy ist mir die Idee gekommen Peers zu "Clustern", das ganze hat momentan den Hintergrund "Einbindung von Peers in Metager", könnte aber auch für andere Anwendungsfälle Interessant sein. Ich möchte, vor die Peers die Metager bedienen sollen, einen Reverse-Proxy/Loadbalancer schalten, das hat den Vorteil das Metager nur 1 Adresse abfragen muss und nicht mitbekommt wenn im "Cluster" Peers dazukommen oder zu Wartungszwecken abgeschaltet sind. Hat jemand schon mal so etwas gemacht, oder weitere Ideen dazu ?
Ich hab als grobe Skizze mal ein PDF-Dokument angehängt....OT - warum sind PDF Anhänge hier nicht erlaubt ?

Gruß,
Thomas

YacyCluster.jpg
YacyCluster.jpg (49.28 KiB) 4466-mal betrachtet
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy-Cluster

Beitragvon Orbiter » Do Okt 22, 2009 10:54 am

das ist eine gute Sache und könnte man völlig unabhängig von YaCy aufsetzen, aber ggf. durch API-Unterstützung in YaCy (Abfrage von Reaktionszeitmessung, Datenmenge, Durchsatz, Hardwareleistungen) anreichern.
Hab gestern mit dulcedo das gleiche Thema besprochen. Vielleicht könnt ihr beide da was zusammen ausknobeln?

Das ganze sollte eigentlich schon fast fertig 'herumliegen', Software Load-Balancer auf Basis vom Apache-httpd im Reverse-Proxy Modus habe ich schon gesehen (im Unternehmenseinsatz, weiss nicht wieviel die da noch rumgebastelt haben).

So ein Ding wäre für uns ein echter Gewinn, dann kann man nämlich unbegrenzte/skalierbare QPS zusichern!
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Yacy-Cluster

Beitragvon Vega » Do Okt 22, 2009 2:08 pm

Hm, zwischen Apache - Tomcat gibt es da eine direkte Schnittstelle, sowas sollten wir auch für Yacy andenken - siehe http://tomcat.apache.org/connectors-doc/

Gruß,
Thomas

Orbiter hat geschrieben:das ist eine gute Sache und könnte man völlig unabhängig von YaCy aufsetzen, aber ggf. durch API-Unterstützung in YaCy (Abfrage von Reaktionszeitmessung, Datenmenge, Durchsatz, Hardwareleistungen) anreichern.
Hab gestern mit dulcedo das gleiche Thema besprochen. Vielleicht könnt ihr beide da was zusammen ausknobeln?

Das ganze sollte eigentlich schon fast fertig 'herumliegen', Software Load-Balancer auf Basis vom Apache-httpd im Reverse-Proxy Modus habe ich schon gesehen (im Unternehmenseinsatz, weiss nicht wieviel die da noch rumgebastelt haben).

So ein Ding wäre für uns ein echter Gewinn, dann kann man nämlich unbegrenzte/skalierbare QPS zusichern!
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy-Cluster

Beitragvon Orbiter » Do Okt 22, 2009 2:19 pm

apache httpd und apache tomcat sind ja zwei paar schuhe. Mit tomcat haben wir in diesem Fall ja nichts am Hut weil das ja ein j2ee Environment ist, und es geht ja nicht um die Integration von Java Software, nur um eine Umkonfiguration des apache httpd, den man, so wie ich das gesehen habe, ganz einfach durch Parameter in den proxy modus bringen kann.
Orbiter
 
Beiträge: 5798
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Yacy-Cluster

Beitragvon Vega » Do Okt 22, 2009 2:53 pm

Entschuldige Michael, wir haben uns Missverstanden, ich wollte nur zeigen wie das im Zusammenspiel Apache - Tomcat gelöst wird, der Apache bekommt ein Modul - versteht quasi dann den Tomcat (Auslastung, etc. ) - über diese Schnittstelle unterhalten sich die beiden Systeme. Das Apache und Tomcat verschiedene paar Schuhe sind ist mir klar, Apache kann durch ein bisschen Konfiguration einfach als Proxy fungieren - aber für die Kommunikation zwischen Apache und Yacy - eben um erweiterte Parameter/Werte zu übergeben, quasi um sicherzustellen das beide miteinander "Reden" braucht man eine Schnittstelle/Api.

Man konnte das in 2 Schritten angehen:

1 - Grundfunktionalität herstellen, also Reverse-Proxy, alle Anfragen werden an alle dahinter liegenden Peers durchgereicht - alle Antworten von allen Peers dann zurück zu Metager. Loadbalancing - ohne Kommunikation mit Yacy schwierig, weil ja, aufgrund des Hashes den jeder Peer hat, nicht jeder Peer die gleichen Ergebnisse liefert bei einer localen Suche - oder ?

2 - Erweiterte Funktionalität - der Loadbalancer und Yacy Kommunizieren miteinander...da ist noch viel Gehirnschmalz nötig :shock:

Gruß,
Thomas

Orbiter hat geschrieben:apache httpd und apache tomcat sind ja zwei paar schuhe. Mit tomcat haben wir in diesem Fall ja nichts am Hut weil das ja ein j2ee Environment ist, und es geht ja nicht um die Integration von Java Software, nur um eine Umkonfiguration des apache httpd, den man, so wie ich das gesehen habe, ganz einfach durch Parameter in den proxy modus bringen kann.
Zuletzt geändert von Vega am Sa Okt 24, 2009 9:54 am, insgesamt 1-mal geändert.
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy-Cluster

Beitragvon dulcedo » Sa Okt 24, 2009 7:46 am

Mein Ansatz: Im Prinzip reicht es wenn ein YaCy-peer unmittelbar an Apache zurückmeldet dass er beschäftigt ist. Oder er meldet dem Apache nichts, weil er nicht kann. Der den Apacheport abfragende Client (Proxy oder direkt Webseite mit Suchfeld) kann aber jederzeit reagieren und sich einen anderen peer suchen, weil er über den Port jederzeit eine unmittelbare Antwort bekommt. Dazu muss allerding der Webserver-Dienst immer erreichbar sein. Wie lange die Antwort dauern darf entscheidet der Client.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Yacy-Cluster

Beitragvon Vega » Mo Okt 26, 2009 3:35 pm

Ok, das wäre der zweite Schritt - am Anfang würde mir ein Reverse-Proxy, der die Anfragen an die dahinter stehenden YACY Server weiterleitet reichen, hast Du/jemand hier im Forum schon einmal so etwas versucht ?

Gruß,
Thomas

dulcedo hat geschrieben:Mein Ansatz: Im Prinzip reicht es wenn ein YaCy-peer unmittelbar an Apache zurückmeldet dass er beschäftigt ist. Oder er meldet dem Apache nichts, weil er nicht kann. Der den Apacheport abfragende Client (Proxy oder direkt Webseite mit Suchfeld) kann aber jederzeit reagieren und sich einen anderen peer suchen, weil er über den Port jederzeit eine unmittelbare Antwort bekommt. Dazu muss allerding der Webserver-Dienst immer erreichbar sein. Wie lange die Antwort dauern darf entscheidet der Client.
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy-Cluster

Beitragvon dulcedo » Mo Okt 26, 2009 3:48 pm

Ich habe es auf Client-Seite in JS oder besser PHP gelöst. Bevor der JS-Code fürs Suchefeld geladen wird den Port auf Erreichbarkeit prüfen, wenn zu lange keine Antwort dann keine Suche oder anderen peer. Das stellt zumindest sicher dass eine abfragende Seite schnell komplett geladen ist. So einen Proxy kann man derart auf einem ganz einfachen Webserver in einer beliebigen Serversprache realisieren.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Yacy-Cluster

Beitragvon Vega » Mo Okt 26, 2009 4:17 pm

Hm, mir geht es erst mal um die Metager Sache (siehe Skizze im ersten Beitrag) - hast Du Lust mir da zu helfen ? - Ich bin aber kein Programmierer, daher wäre mir eine Konfiguration mit Apache etc. lieber, das ist gut Dokumentiert und universell verwendbar.

Gruß,
Thomas

dulcedo hat geschrieben:Ich habe es auf Client-Seite in JS oder besser PHP gelöst. Bevor der JS-Code fürs Suchefeld geladen wird den Port auf Erreichbarkeit prüfen, wenn zu lange keine Antwort dann keine Suche oder anderen peer. Das stellt zumindest sicher dass eine abfragende Seite schnell komplett geladen ist. So einen Proxy kann man derart auf einem ganz einfachen Webserver in einer beliebigen Serversprache realisieren.
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy-Cluster

Beitragvon liebel-lab » Mi Okt 28, 2009 5:59 pm

....ohne grosse Worte: fuer das sciencenet waere das auch ein megaplus...kann mich erinnernd ass wir da schon oefters drueber diskutiert haben...
derzeit ist es ja so, dass wenn der "sciencenet portalrechner" busy ist wir ein problem haben...

wir koennen auch gerne das gleich als YACY freeworld portal hier aufsetzen...(test am sciencenet oder freeworld oder oder)
hm...sowas muss es doch fix und fertig geben mit erfahrungswerten...das problem hat doch jeder mit >2 rechnern...
liebel-lab
 
Beiträge: 175
Registriert: Sa Jan 26, 2008 7:00 pm

Re: Yacy-Cluster

Beitragvon Low012 » Mi Okt 28, 2009 6:42 pm

Wikipedia hilft mal wieder: http://en.wikipedia.org/wiki/Reverse_proxy

Man kann Apache dazu bringen, als Loadbalancer zu arbeiten (http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html) oder eine der etwas leichtgewichtigeren Lösungen wie Pound oder Pen wählen, die im Wikipedia-Artikel verlinkt sind.

Praktische Erfahrung habe ich allerdings mit keiner Lösung.
Low012
 
Beiträge: 2214
Registriert: Mi Jun 27, 2007 12:11 pm

Re: Yacy-Cluster

Beitragvon Quix0r » Mo Jan 25, 2010 7:19 pm

Ich werfe mal meinen Link in die Runde, da man das auch auf Master/Slave uebertragen kann. Der "Balancer" ist dabei der Master, die Slaves der "Cluster". :)

http://www.mxchange.org/yacy-modi.html
Quix0r
 
Beiträge: 1347
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: Yacy-Cluster

Beitragvon Kaffeetasse » So Mär 28, 2010 1:20 am

Hallo,

nun viel schreibe ich net und bin in den letzten Monaten auch nicht immer "on" mit meinen beiden Peers. Aber ich finde QuixOr´s Idee charmant. Mein Vista-Peer wo Yacy 2GB Ram bekommt quält
sich schon bei 17Mio Links einen ab- mein Ubuntu-Peer (HomeServer) mit 1 GB hatte ich nach 3 Tagen soweit das man Yacy nicht ordentlich laufen lassen kann. Die Idee mit der Aufgabenverteilung
ist daher für mich das interessanteste was ich hier so gelesen habe. Da ich im Haushalt mehr oder weniger 5 Pc´s habe wäre ein verteiltes System besser da man je nach "Potenz" Aufgaben
vergeben könnte und ich nicht 5 Pc´s am Limit betreiben müsste.

Viele Grüße
Kaffeetasse 1-3
Kaffeetasse
 
Beiträge: 23
Registriert: Mi Jun 27, 2007 3:10 pm

Re: Yacy-Cluster

Beitragvon Vega » Fr Apr 29, 2011 8:40 pm

Ich möchte das Thema noch einmal aufgreifen, ich bin gerade am testen, hat jemand von euch Erfahrung mit Varnish http://www.varnish-cache.org/ ?
Nachdem ich an Apache als Reverse-Proxy bald verzweifelt bin, habe ich Varnish angetestet und bin ziemlich begeistert, Schwachpunkt ist nur die (meiner Meinung nach) nicht gerade gute Dokumentation.

Ich benutze den Reverse Proxy, um auf einem PC zwei YaCy Peers zu betreiben, die beide unter verschiedenen DNS-Adressen unter Port 80 angesprochen werden sollen. Port 80, damit die Live-Suche unkompliziert in Webseiten eingebunden werden kann. Andere Ports funktionieren oft hinter Firewalls nicht.

Aktuell sind http://tokeek.homedns.org - die Forum und Wikisuche und http://linuxtag.dyndns-server.com/ - Peer für den Linuxtag in Berlin
hinter einen Varnish Proxy angebunden. Das funktioniert auch schon ganz gut, sogar die Livesuche funktioniert (hat beim Apache nie geklappt). Was noch nicht geht, ist die Administration über den Proxy, es werden Änderungen nicht übernommen, spreche ich die Peers über Ihre realen Ports an, funktioniert alles. Daher denke ich, es liegt am Handling der "Post" Anfragen oder Cookies durch den Proxy. Hat jemand dazu eine Idee ?

Edit - die Administration funktioniert jetzt, es lag an den "Post" anfragen, die dürfen nicht gecacht werden.

Gruß,
Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy-Cluster

Beitragvon PCA42 » Sa Apr 30, 2011 11:28 am

Ich hatte mir da auch mal Gedanken zu gemacht, wollte das aber eher über lighttpd mit URL-Rewrite realisieren. Wäre das vielleicht noch ein anderer Ansatz für dich?
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Yacy-Cluster

Beitragvon Vega » Sa Apr 30, 2011 12:00 pm

@PCA42 - den Ansatz habe ich ja mit dem Apache verfolgt, dazu gibt es auch einen Artikel im Wiki http://www.yacy-websuche.de/wiki/index.php/ReverseProxy, prinzipiell funktioniert das auch, aber das URL-Rewriting hat mir immer die Live-Suche zerschossen. Sicherlich kann man das hinbiegen, aber Varnish war jetzt für mich der schnellere Weg zum Ziel. Aber Dein Ansatz ist auch Interessant, einfach ausprobieren - wenn man mehrere funktionierende Varianten hat, ist das immer gut. Ich werde meine Konfiguration im Wiki dokumentieren, vielleicht gibt es ja noch Ergänzungen/Ideen dazu.

Gruß,
Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy-Cluster

Beitragvon PCA42 » So Mai 15, 2011 10:08 pm

So, ich hatte heute auch mal etwas Zeit gefunden, meinen Root-Server umzubauen. Für die Umsetzung mit lighttpd war ich von zu doof, mit ngnix war das in 5 Minuten realisiert. Installation über aptitude und dann fix ein Beispiel (URL) auf meine Gegebenheit modifiziert. Damit hab ich dann auch noch die Möglichkeit, über den Server die Web-Seite für meine holde Weiblichkeit auszuliefern.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: Yacy-Cluster

Beitragvon Buster » Mo Mai 16, 2011 8:48 pm

Für Apache hilft eine Kombination von mod_proxy und mod_proxy_html. Soweit bisher festgestellt, erschlagen folgende Regeln alle YaCy-Adressen:
Code: Alles auswählen
RewriteRule      ^/suche$      http://example.org/suche/
ProxyPass        /suche/       http://example.org:8090/
ProxyPass        /api/         http://example.org:8090/api/
ProxyPass        /env/         http://example.org:8090/env/
ProxyPass        /yacy/        http://example.org:8090/yacy/
<Proxy http://example.org:8090/>
        ProxyHTMLURLMap /      /suche/
        ProxyHTMLURLMap /api/  /suche/api/
        ProxyHTMLURLMap /env/  /suche/env/
        ProxyHTMLURLMap /yacy/ /suche/yacy/
        SetOutputFilter proxy-html
        # test erweiterter URL-Änderungen für css/js-Dateien
        # siehe http://apache.webthing.com/mod_proxy_html/guide.html
        ProxyHTMLExtended on
        ProxyHTMLURLMap url\(/env/([^\)]*)\) url(/suche/env/$1) Rihe
</Proxy>

Das obige Beispiel stellt die gesamten YaCy-Seiten unter http://example.org/suche/ bereit.

Es wäre sehr hilfreich, wenn YaCy einheitlich relative URLs in HTML-, CSS- und JavaScript-Dateien verwenden würde. Evtl. könnte man auch eine Variable einführen, die dann als Wert im <base href="..."> genutzt wird, so wie es bei vielen Content-Management-Systemen üblich ist.
Buster
 
Beiträge: 3
Registriert: Do Mai 12, 2011 8:12 am
Wohnort: Dresden


Zurück zu Wunschliste

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste