Gibt es bekannte Probleme mit Scala mit Apache Camel?
-
29-09-2019 - |
Frage
Ich weiß, dass es eine unterstützte Scala DSL für Camel. Abgesehen davon, dass
-
Ist es realistisch, ein Kamel durchs Nadelöhr basiertes Projekt von Scala Java (die Sprache) vollständig zu ersetzen?
-
Welche Art von bekannten Probleme sind bekannt existieren?
-
Welche Abhilfen für diese Probleme existieren (andere als die Verwendung von Java)?
Ich bin vor allem für weniger boilerplaty Code suchen.
Lösung
Akka bietet stabile Scala-idiomatische Camel Integration .
Das akka-Kamel-Modul ermöglicht Schauspieler, untypisierten Schauspieler und tippte Akteure empfangen und Nachrichten über einen großen senden Vielzahl von Protokollen und APIs. Dies Abschnitt gibt einen kurzen Überblick über die allgemeine Ideen hinter dem akka-Kamel Modul, bleiben die übrigen Teile gehen in die Details. Neben der nativen Scala und Java Schauspieler API können Akteure Jetzt tauschen Nachrichten mit anderen Systeme über große Anzahl von protcols und APIs wie HTTP, SOAP, TCP, FTP, SMTP oder JMS, um nur einige zu nennen. Bei der Moment, etwa 80-Protokolle und APIs werden unterstützt.
Abgesehen davon, dass ich bin sicher, dass dieser Austausch ist möglich, durch eine gute Interop, und es kaum Scala spezifischen Probleme sein könnte, die nicht typisch für Java. Z. B. Schauspieler Akka verwendet für die Veröffentlichung zu / raubend von Camel-Endpunkten auf java.util.concurrency basieren, und das einzige Problem, das ich denken kann, ist ein fixierbar Fehler in der Bibliothek.
Andere Tipps
In der Zwischenzeit eine relativ einfache Scala DSL ist für Camel entwickelt, , die haben sollte die Funktionalität des Java DSL .
Um zu entscheiden, ob es für Sie realistisch ist, betrachten:
- Die Qualität der IDE-Unterstützung für die Sprachen in
- Die Scala Sprache Komplexität
- Die Popularität Scala / Java-Sprache
- DSL Erweiterungsmöglichkeiten. In Scala, sollte es möglich sein (mit etwas Scala Magie), um die DSL zu erweitern (fügen Sie zusätzliche DSL-Elemente)
Wenn Sie sich entscheiden, es zu versuchen, wäre es toll, wenn Sie Ihre Erfahrungen mit der Community Apache Camel teilen Sie Ihre Eindrücke auf:
code readability
, code maintainability
, code efficiency
, developer satisfaction
, code size
, die Anzahl der "man-days"
.
Seitdem (2010-2011), gibt es jetzt (September 2016) eine neue Initiative namens für Akka Streams Integration, Codename Alpakka .
Wir glauben, dass Akka Streams das Werkzeug für den Aufbau einer modernen Alternative sein kann, um Apache Camel . Das wird für sich allein nicht über Nacht geschehen, und dies ist ein Aufruf für Arme für die Gemeinde uns an dieser Mission teilzunehmen. Der größte Vorteil von Camel ist sein umfangreicher Satz von Endpunktkomponenten . Wir möchten sehen, dass ähnliche Endpunkte für Akka Streams entwickelt werden.
Siehe " akka/akka-stream-contrib
".