2016-04-02 2 views
0

Wir senden Hunderte von Dateien jede Minute an mehrere Server.was ist effizienter für sftp: Java oder Shell-Skript?

Derzeit erzeugen wir die Shell-Skripte (als Dateien via Java), die nur sftp-Befehle enthalten und sie als Shell-Skripte ausführen. Der Grund, warum wir Java verwenden, ist die Organisation der Dateien basierend auf Zielpfad und Zielserver. Am Ende haben wir für jeden Zielserver ein Shell-Skript.

Jetzt denke ich wird es effiziente und schneller sein, wenn ich die Dateien über Java-Code selbst statt Skript Erstellen und Ausführen von ihm

Derzeit senden dauert es 4 bis 5 Sekunden die Skripten für 4-Server zu erzeugen. Die Ausführung des tatsächlichen sftp beginnt also in der 5. Sekunde und endet sehr schnell (basierend auf der Anzahl der Dateien). Wenn ich wie JSch zu java sftp wechsele, wird es genauso schnell wie sftp im Shell-Skript oder langsamer sein?

+1

Es gibt viele Möglichkeiten, wie eine Java-Implementierung schneller als eine Shell-Implementierung sein kann. Aber ob es tatsächlich sein wird oder nicht, hängt von der Implementierung beider ab, also ist dies wirklich keine zu beantwortende Frage mit einem vernünftigen Spielraum für Stapelüberlauf. Mein Vorschlag wäre, zu untersuchen, wie viel von einem Problem die derzeitige Langsamkeit des Prozesses ist, zu untersuchen, wie viel Zeit eine Java-Implementierung wahrscheinlich benötigt, und wenn Sie dann denken, dass die möglichen Gewinne die Mühe wert sind, tun Sie es einfach und sehen Sie, wie viel Unterschied macht es. – Cubic

+0

Warum dauert es 4-5 Sekunden, um die Skripte zu generieren? Das scheint ein guter Ort zu sein, um nach Ineffizienzen Ausschau zu halten. Können Sie ein Skript generieren und es vor dem Generieren des nächsten ausführen? – chicks

Antwort

1

Es hängt davon ab, was Sie erreichen möchten. Wenn die Wartung dieser Lösung auch ein Faktor ist, würde ich vorschlagen, Apache-Camel mit FTP-Komponente https://github.com/apache/camel/tree/master/examples/camel-example-ftp zu verwenden. Gibt Ihnen Kontrolle und Flexibilität. Keine Shell-Skripterstellung. Und vor allem können Sie eine App (wenn nötig) um sie herum schreiben oder sie zu einem bereits existierenden machen.

+0

sftp Unterstützung http://camel.apache.org/ftp2.html – gmaslowski

Verwandte Themen