Scalaを使用してApache Camelを使用する問題はありますか?
-
29-09-2019 - |
質問
ラクダにサポートされているScala DSLがあることを知っています。それとは別に
ラクダベースのプロジェクトのためにScalaによってJava(言語)を完全に置き換えることは現実的ですか?
どのような既知の問題が存在することが知られていますか?
これらの問題に対してどの回避策が存在しますか(Javaを使用する以外)?
私は主に、より少ないボイラープラートのコードを探しています。
解決
Akkaは安定したScala-Idiomaticを提供します ラクダの統合.
Akka-Camelモジュールにより、アクター、型のない俳優、タイプされたアクターが、多種多様なプロトコルやAPIを介してメッセージを受け取り、送信できます。このセクションでは、Akka-Camelモジュールの背後にある一般的なアイデアの簡単な概要を説明します。残りのセクションは詳細について説明します。ネイティブScalaおよびJava Actor APIに加えて、アクターは、HTTP、SOAP、TCP、FTP、SMTP、JMSなどの多数のプロトコルやAPIを介して他のシステムとメッセージを交換できるようになりました。現時点では、約80のプロトコルとAPIがサポートされています。
それとは別に、私はこの交換が良好な間の相互作用のために可能であると確信しており、Javaに独特ではないScala固有の問題はほとんどありません。たとえば、ラクダのエンドポイントから出版/消費に使用されるAkkaの俳優はjava.util.concurrencyに基づいており、私が考えることができる唯一の問題は、ライブラリの修正可能なバグです。
他のヒント
それまでの間、比較的単純です Scala DSLはラクダ向けに開発されました, これには、Java DSLの機能が必要です.
それがあなたにとって現実的かどうかを判断するには、考えてみてください。
- の品質 IDEサポート 言語の場合
-Scala言語の複雑さ
-Scala/Java言語の人気
-DSL拡張の可能性。 Scalaでは、DSLを拡張することができるはずです(Scala Magicをいくつか)(DSL要素を追加する)
あなたがそれを試してみることに決めたなら、あなたがあなたの経験をApachecamelコミュニティと共有するなら、それは素晴らしいことです:あなたの印象は次のとおりです: code readability
, code maintainability
, code efficiency
, developer satisfaction
, code size
, 、の数 "man-days"
.
それ以来(2010-2011)、Akka Streams Integration、Codenameにちなんで名付けられた最近のイニシアチブがあります(2016年9月) アルパッカ.
Akka Streamsは、最新の代替品を構築するためのツールになる可能性があると考えています アパッチラクダ. 。それはそれ自体で一晩で起こることはありません。これは、コミュニティがこのミッションに参加するための武器の呼びかけです。ラクダの最大の資産は、その豊富なセットです エンドポイントコンポーネント. 。同様のエンドポイントがAkkaストリーム用に開発されていることを確認したいと思います。
見る "akka/akka-stream-contrib
".